Pandas分组时如何直接去重聚合,无需单独调用drop_duplicates?
实现方案
完全可以在一行代码内完成聚合操作,不需要单独调用drop_duplicates,推荐直接使用分组聚合+重命名的方式实现:
df_grouped = df_brut.groupby(['cod', 'date', 'zone'], as_index=False)['Revenue'].sum().rename(columns={'Revenue': 'SUM_'})
代码说明
- 按你指定的
cod、date、zone三个维度分组,直接对Revenue列求和,分组后每个组合只会返回一行结果,天然不需要额外去重 as_index=False参数会让三个分组键直接作为普通列返回,不会被设置为DataFrame索引- 最后通过
rename方法将求和后的列名修改为你需要的SUM_,完全匹配你的预期输出
如果需要调整列顺序和你给出的data2完全一致,可以在代码末尾补充列重排逻辑:
df_grouped = df_brut.groupby(['cod', 'date', 'zone'], as_index=False)['Revenue'].sum().rename(columns={'Revenue': 'SUM_'}).reindex(columns=['date','cod','zone','SUM_'])
内容的提问来源于stack exchange,提问作者tamo007
相关产品推荐
相关产品推荐

