[英]Pandas groupby give any non nan values
我正在尝试在给定此groupby索引的表上执行groupby,所有值都是正确的或Nan。 例如:
id country name
0 1 France None
1 1 France Pierre
2 2 None Marge
3 1 None Pierre
4 3 USA Jim
5 3 None Jim
6 2 UK None
7 4 Spain Alvaro
8 2 None Marge
9 3 None Jim
10 4 Spain None
11 3 None Jim
我只想获得4个人中每个人的价值,这些人永远不会发生冲突,例如:
country name
id
1 France Pierre
2 UK Marge
3 USA Jim
4 Spain Alvaro
我试过了:
groupby().first()
groupby.nth(0,dropna='any'/'all')
乃至
groupby().apply(lambda x: x.loc[x.first_valid_index()])
一切都无济于事。 我错过了什么?
编辑:帮助您制作用于测试的示例数据框:
df = pd.DataFrame({'id':[1,1,2,1,3,3,2,4,2,3,4,3],'country':['France','France',None,None,'USA',None,'UK','Spain',None,None,'Spain',None],'name':[None,'Pierre','Marge','Pierre','Jim','Jim',None,'Alvaro','Marge','Jim',None,'Jim']})
Pandas groupby.first返回第一个非空值但不支持None,请尝试
df.fillna(np.nan).groupby('id').first()
country name
id
1 France Pierre
2 UK Marge
3 USA Jim
4 Spain Alvaro
当值为None
时,可以指定dropna
df.groupby('id').first(dropna=True)
country name
id
1 France Pierre
2 UK Marge
3 USA Jim
4 Spain Alvaro
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.