python-从pandas DataFrame返回最后一个有效(非null)值
作者:互联网
假设我有一个数据框看起来像:
a b
0 11 A
1 -2 A
2 3 A
3 NA A
4 0.5 B
5 NA B
6 -9 B
我可以按“ b”创建组.有没有一种快速的方法来获取每个组的“ a”中的最后一个非NA值?在这种情况下,A组为3,B组为-9.
(在这种情况下,序列“ a”按照给定的顺序排序,但可能并非如此.可能还有另一列“ c”,据此定义了“最后一个”.)
我通过查看grouped.groups字典来编写自己的循环代码.但是,鉴于我庞大的数据集,这显然效率很低.我认为可以很直接地做到这一点-也许我对熊猫还只是个新手:-)
解决方法:
我最近为此添加了一个github问题:https://github.com/pydata/pandas/issues/1043
同时,您可以执行以下操作:
def get_last_valid(series):
return series.dropna().iget(-1)
df.groupby('b')['a'].apply(get_last_valid)
标签:pandas-groupby,pandas,dataframe,python,group-by 来源: https://codeday.me/bug/20191101/1983620.html