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

熊猫:以其他列为条件的groupby总和

熊猫:以其他列为条件的groupby总和

芜湖不芜 2023-02-12 19:07:05
我有一个看起来像这样的数据框pd.DataFrame({'a':['A', 'B', 'B', 'C', 'C', 'D', 'D', 'E'],              'b':['Y', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N'],              'c':[20, 5, 12, 8, 15, 10, 25, 13]})   a  b   c0  A  Y  201  B  Y   52  B  N  123  C  Y   84  C  Y  155  D  N  106  D  N  257  E  N  13我想对“a”列进行分组,检查“b”列中的任何一个是否为“Y”或 True 并保留该值,然后对“c”求和结果数据框应该是这样的   a  b   c0  A  Y  201  B  Y  172  C  Y  233  D  N  354  E  N  13我尝试了以下但出现错误df.groupby('a')['b'].max()['c'].sum()
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您可以使用agg和max。sum'b' 列上的最大值确实有效,因为 'Y' > 'N' == True


print(df.groupby('a', as_index=False).agg({'b': 'max', 'c': 'sum'}))


   a  b   c

0  A  Y  20

1  B  Y  17

2  C  Y  23

3  D  N  35

4  E  N  13


查看完整回答
反对 回复 2023-02-12
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

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