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

如何用Python Pandas合并相同jobID的数据行并累加clicks?

解决方法:用Pandas分组聚合合并重复行并累加点击量

嘿,你完全不用逐个处理重复的jobID行!Pandas的groupby() + sum()组合就是专门解决这类分组聚合需求的,效率超高,不管重复行有多少都能一次性搞定。

具体步骤和代码示例:

  1. 读取CSV文件
    先把你的CSV数据读进DataFrame里,如果你的CSV没有表头,记得手动指定列名:

    import pandas as pd
    
    # 读取无表头的CSV,手动指定列名
    df = pd.read_csv('your_data.csv', header=None, names=['jobID', 'industry', 'clicks'])
    # 如果CSV本身自带表头(第一行是jobID,industry,clicks),直接用下面这句:
    # df = pd.read_csv('your_data.csv')
    
  2. 分组并累加点击量
    因为每个jobID对应的industry是固定的,我们可以同时按jobID和industry分组(这样更严谨,能避免出现同一jobID对应不同行业的异常数据),然后对clicks列求和:

    # 分组聚合,as_index=False让分组列保持为普通列,不转为索引
    merged_df = df.groupby(['jobID', 'industry'], as_index=False)['clicks'].sum()
    
  3. 查看或保存结果
    现在你就能得到合并后的目标数据了,要么直接打印查看,要么保存成新的CSV文件:

    # 打印合并后的数据
    print(merged_df)
    # 输出结果如下:
    #   jobID    industry  clicks
    # 0  job1  healthcare      50
    # 1  job2    medicine      90
    
    # 保存到新CSV,index=False避免写入多余的索引列
    merged_df.to_csv('merged_jobs.csv', index=False)
    

为什么pd.concat()不适用?

pd.concat()的作用只是把多个DataFrame拼接在一起,它不会做任何聚合或合并重复行的操作,所以用它来处理这个需求就找错工具啦。而groupby()是Pandas专门为分组统计设计的功能,能高效处理大量重复行的聚合计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:58:35