我有這個 DF:In [106]: dfTest = pd.DataFrame( {'name':['a','a','b','b'], 'value':['x','y','x','h']}) In [107]: dfTestOut[107]: name value0 a x1 a y2 b x3 b hname所以我的意圖是每組獲得一行value,保留將取決于。name如果對于我在 中找到h的每一組value,我想保留它。否則,任何value都適合,例如:In [109]: dfTest Out[109]: name value0 a x1 b h
2 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
你可以這樣做:
dfTest.reindex(dfTest.groupby('name')['value'].agg(lambda x: (x=='h').idxmax()))
輸出:
name value
value
0 a x
3 b h

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
另一種方法drop_duplicates:
(dfTest.loc[dfTest['value'].eq('h').sort_values().index]
.drop_duplicates('name', keep='last')
)
輸出:
name value
1 a y
3 b h
添加回答
舉報
0/150
提交
取消