我有这个DF:
In [106]: dfTest = pd.DataFrame( {'name':['a','a','b','b'], 'value':['x','y','x','h']})
In [107]: dfTest
Out[107]:
name value
0 a x
1 a y
2 b x
3 b h
所以我的意图是每个name
组获得一行,并且要保留的value
将取决于行。如果对于name
的每组,我都在h
中找到value
,我想保留它。否则,任何value
都适合,例如:
In [109]: dfTest
Out[109]:
name value
0 a x
1 b h
答案 0 :(得分:2)
您可以这样操作:
dfTest.reindex(dfTest.groupby('name')['value'].agg(lambda x: (x=='h').idxmax()))
输出:
name value
value
0 a x
3 b h
答案 1 :(得分:1)
使用spdep
的另一种方法:
3.6.2
输出:
drop_duplicates