You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于“年份创建”“周数创建”两列删除重复分组数据?

解决方法

你的数据集里Year created和Week created的重复行对应的汇总列(SUM_New、SUM_Closed、SUM_Open)值已经完全一致,所以不需要再做分组聚合,直接对这两列去重就能得到唯一的分组数据。

正确代码

你可以使用drop_duplicates()方法,指定去重的列,同时选择保留每组的第一行或最后一行:

# 保留每组的第一行(对应你示例中的索引0行)
df_cleaned = df.drop_duplicates(subset=['Year created', 'Week created'], keep='first')

# 如果想保留每组的最后一行(对应你示例中的索引4行)
df_cleaned = df.drop_duplicates(subset=['Year created', 'Week created'], keep='last')

为什么之前的方法不适用?

你用的df.groupby(['Year created', 'Week created']).size()只是统计每个分组的行数,返回的是一个仅包含计数的Series,不会保留原数据中的汇总列信息,所以无法满足你的需求。而你的数据已经是汇总好的,同一分组的所有行的SUM列值都相同,直接去重是最直接高效的方式。

输入输出示例

  • 原始数据:
Year created Week created SUM_New SUM_Closed SUM_Open
0 2018 1 17 0 82
1 2018 6 62 47 18
2 2018 6 62 47 18
3 2018 6 62 47 18
4 2018 6 62 47 18
  • 使用keep='last'后的结果:
Year created Week created SUM_New SUM_Closed SUM_Open
0 2018 1 17 0 82
4 2018 6 62 47 18

内容的提问来源于stack exchange,提问作者user21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:54:23