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

如何对pandas DataFrame按列分组并对指定列求和生成新表

实现步骤

1. 导入依赖库

首先导入pandas:
import pandas as pd

2. 构造测试数据(如果已有DataFrame可跳过此步)

df = pd.DataFrame({
    'CHAR': ['A', 'A', 'A', 'B', 'B', 'C'],
    'VALUE': [10, 10, 10, 15, 15, 20],
    'WEIGHT': [1, 2, 1, 4, 4, 6]
})

3. 分组聚合计算

因为每个唯一CHAR对应唯一VALUE,分组时VALUE取首个值即可,WEIGHT对同组求和:

# 按CHAR分组聚合
temp_df = df.groupby('CHAR', as_index=False).agg(
    base_value = ('VALUE', 'first'),
    T_WEIGHT = ('WEIGHT', 'sum')
)
# 计算T_VALUE
temp_df['T_VALUE'] = temp_df['base_value'] + temp_df['T_WEIGHT']
# 提取最终需要的三列
result_df = temp_df[['CHAR', 'T_VALUE', 'T_WEIGHT']]

最终结果

输出result_df即可得到目标结构:

CHART_VALUET_WEIGHT
A144
B238
C266

补充校验(可选)

如果不确定每个CHAR对应的VALUE是否唯一,可先运行校验语句避免计算错误:
assert df.groupby('CHAR')['VALUE'].nunique().eq(1).all(), "存在同CHAR对应多个VALUE的异常数据"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:15:07