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

如何根据mat_source列的值分组求和length列

解决方案

先整理示例数据为可阅读的Markdown表格:

asset_IDlengthagemat_sourcecon_num
15006.00000ark1
21706.00000bg1
34809.00000brnl2
428410.00000brnl2
5304.00000bg3
65003.09589brnl1
72706.79726brnl4
84763.00000ark4
93955.00000brnl1
108018.90411ark2
1150014.00000brnl1
125006.00000ark1
1350022.00000ark4
141102.00000brnl3
1550014.00000brnl1
163632.00000brnl4

一、指定单个mat_source值求和

Excel实现

使用SUMIF函数,语法为SUMIF(条件区域, 指定值, 求和区域)。以计算mat_source为ark的length总和为例:

=SUMIF(D:D, "ark", B:B)

计算结果为:2056

Python Pandas实现

先构造DataFrame,再通过布尔索引筛选后求和:

import pandas as pd

# 构建示例数据
df = pd.DataFrame({
    'asset_ID': [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],
    'length': [500,170,480,284,30,500,270,476,395,80,500,500,500,110,500,363],
    'age': [6.0,6.0,9.0,10.0,4.0,3.09589,6.79726,3.0,5.0,18.90411,14.0,6.0,22.0,2.0,14.0,2.0],
    'mat_source': ['ark','bg','brnl','brnl','bg','brnl','brnl','ark','brnl','ark','brnl','ark','ark','brnl','brnl','brnl'],
    'con_num': [1,1,2,2,3,1,4,4,1,2,1,1,4,3,1,4]
})

# 计算指定值的总和
target_value = 'ark'
sum_result = df[df['mat_source'] == target_value]['length'].sum()
print(sum_result)  # 输出2056

二、对所有mat_source不同值分别求和

Excel实现

方法1:数据透视表

  1. 选中数据区域,点击「插入」→「数据透视表」
  2. 将mat_source拖到「行」区域,length拖到「值」区域(默认求和)
  3. 自动生成各分组的length总和

方法2:UNIQUE+SUMIF组合(Excel 365及以上)

  • 在空白单元格输入=UNIQUE(D:D),获取所有唯一的mat_source值
  • 在旁边单元格输入=SUMIF(D:D, E2, B:B),下拉填充得到每个值的总和

Python Pandas实现

使用groupby分组求和,一行代码完成:

grouped_sum = df.groupby('mat_source')['length'].sum()
print(grouped_sum)

输出结果:

mat_source
ark     2056
bg       200
brnl    3302
Name: length, dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 15:24:57