为了账号安全,请及时绑定邮箱和手机立即绑定

Groupby 并根据字符串值保留行

Groupby 并根据字符串值保留行

一只名叫tom的猫 2022-10-11 16:09:10
我有这个 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


查看完整回答
反对 回复 2022-10-11
?
绝地无双

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


查看完整回答
反对 回复 2022-10-11
  • 2 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信