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

如何对DataFrame中的重复名称分组并求和对应数值?

搞定DataFrame重复名称分组求和的问题

嘿,我来帮你解决这个分组求和的问题!从你给出的DataFrame前几行来看,大概率是你在使用groupby或者apply时没踩对关键点,比如列名没设置好、数值类型不对,或者调用方法的方式有问题。下面一步步来解决:

第一步:先把你的DataFrame列名捋清楚

从你贴的内容看,你的数据应该是两列:地区名称和对应的数值,但可能你的DataFrame默认用了无意义的列名(比如0、1),这会导致groupby找不到正确的分组列。先确认列名:

print(df.columns)

如果输出是类似RangeIndex(start=0, stop=2, step=1)或者Index(['0', '1'], dtype='object'),那先给列起个明确的名字:

df.columns = ['region', 'value']

第二步:用groupby轻松完成分组求和

这时候就可以按地区名称分组,然后对数值列求和了:

summed_result = df.groupby('region')['value'].sum().reset_index()

拆解一下这个代码:

  • groupby('region'):把相同地区名称的行归为一组
  • ['value'].sum():对每个分组里的数值列做求和操作
  • reset_index():把分组后的索引(地区名称)变回普通列,这样结果看起来更规整

运行完后,你打印summed_result就能得到想要的结果:

region  value
0   AMAZONAS     17
1  ANTIOQUIA   2911

为啥你之前的尝试没成功?

大概率是这几个原因之一:

  • 列名不对:你用了不存在的列名去分组,自然会报错
  • 数值列不是数字类型:如果value列存的是字符串,求和肯定会失败,这时候要先转类型:
    df['value'] = pd.to_numeric(df['value'])
    
  • 聚合方法用错了:比如用groupby后没指定要聚合的列,或者用了apply但写的逻辑有问题

要是还是有问题,把你之前写的代码贴出来,我帮你排查具体问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:15:09