如何基于现有DataFrame按列去重并分组求和生成新DataFrame
pandas按唯一ID分组求和实现方案
针对按唯一登录ID去重、同时汇总对应Volume列总和的需求,直接使用pandas内置的聚合方法即可实现,注意先匹配你DataFrame的实际列名:示例数据里的列名是带空格的Login ID和Volume,不要误写成下划线命名的版本。
- 推荐方案:使用
groupby分组聚合,性能更好,写法简洁
# as_index=False保证分组列保留为普通列,不会成为结果的行索引 result_df = merged_df.groupby('Login ID', as_index=False)['Volume'].sum()
- 备选方案:使用数据透视表
pivot_table实现,逻辑更直观
result_df = merged_df.pivot_table( index='Login ID', values='Volume', aggfunc='sum', as_index=False )
运行结果
基于你给出的测试数据,两种方法运行后得到的输出完全一致:
| Login ID | Volume |
|---|---|
| cab001 | 8 |
| cab002 | 3 |
| cab003 | 2 |
如果你实际环境中的DataFrame列名确实为下划线格式的
login_id、volume,将代码中对应位置的列名替换即可,聚合逻辑不需要改动。
内容的提问来源于stack exchange,提问作者user18587858
相关产品推荐
相关产品推荐

