基于 Pandas DataFrame 中的另一列求和列

新手上路,请多包涵

我有一个像这样的熊猫数据框:

 >>> df = pd.DataFrame({'MONTREGL':[10,10,2222,35,200,56,5555],'SINID':['aaa','aaa','aaa','bbb','bbb','ccc','ccc'],'EXTRA':[400,400,400,500,500,333,333]})
>>> df
   MONTREGL SINID EXTRA
0        10   aaa   400
1        10   aaa   400
2      2222   aaa   400
3        35   bbb   500
4       200   bbb   500
5        56   ccc   333
6      5555   ccc   333

我想对每个 groupby 的列 MONTREGL 求和 SINID

所以我得到 2242 的 aaa 等等……我还想保留列 EXTRA 的值。

这是预期的结果:

    MONTREGL SINID EXTRA
0      2242   aaa   400
1       235   bbb   500
2      5611   ccc   333

提前感谢您的帮助!

原文由 Soufiane Sabiri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 649
2 个回答

我最终使用了这个脚本:

 dff = df.groupby(["SINID","EXTRA"]).MONTREGL.sum().reset_index()

它适用于此测试和生产。

原文由 Soufiane Sabiri 发布,翻译遵循 CC BY-SA 4.0 许可协议

我知道这篇文章很旧,但这可能对其他人有帮助:

使用位置: df.loc[df['SINID'] == aaa].MONTREGL.sum()

使用 groupby: df.groupby('SINID')['MONTREGL'].sum()

以下链接回答了类似的问题(查看 Alex Riley 的回复):

如何使用 pandas 对符合给定条件的列中的值求和?

祝你好运,

原文由 mOna 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题