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

如何在Python中对CSV相同首列对应次列值求和并生成新文件

解决CSV首列去重并求和次列的问题

嘿,我来帮你搞定这个CSV处理的需求!你想要把首列值相同的条目合并,只保留一条并把对应次列的所有值求和,这个用pandas的groupby完全能实现,不过看你贴的代码片段里有几个容易踩坑的小问题,比如groupbby是拼写错误(应该是groupby),而且手动初始化空数组再转DataFrame的方式可能不是读取CSV的正确姿势,这大概率是你报错的原因之一。

我给你整理了一套完整的正确流程,还有代码示例:

步骤1:正确读取CSV文件

别手动初始化空数组啦,直接用pandas的read_csv读取你的原始CSV,这样能避免数据类型不匹配或者数据丢失的问题:

import pandas as pd

# 替换成你的CSV文件路径
df = pd.read_csv('你的输入文件.csv')

步骤2:分组求和并去重

用groupby按首列分组,然后对次列求和,记得加上as_index=False,这样分组的首列会保持为普通列,而不是变成索引:

# 把'First'替换成你首列的实际列名,'Second'替换成次列的列名
merged_df = df.groupby('First', as_index=False)['Second'].sum()

步骤3:导出新的CSV文件

把处理后的结果导出成新的CSV,加上index=False避免生成多余的索引列:

merged_df.to_csv('你的输出文件.csv', index=False)

可能的报错原因排查

如果之前用groupby时报错,大概率是这几个问题:

  • 拼写错误:你写的groupbby多了一个b,正确的是groupby,这个小错误会直接触发语法报错;
  • 数据类型不兼容:如果你的次列(比如'Second')是字符串类型,求和操作会失败,这时候可以先转换数据类型:
    # 把次列转换成数值型,无法转换的会变成NaN,你可以根据需求处理这些NaN
    df['Second'] = pd.to_numeric(df['Second'], errors='coerce')
    
  • 手动初始化DataFrame的问题:你之前用np.empty创建的空数组和实际CSV的数据不匹配,直接读取CSV才是更稳妥的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:34:38