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

Python Pandas如何基于指定列重复值求和并保留分组首行

实现方案

完整可运行代码

import pandas as pd
import numpy as np

# 构建示例DataFrame
df = pd.DataFrame({
        'Column A': [12,12,12, 15, 16, 141, 141, 141, 141],
         'Column B':['Apple' ,'Apple' ,'Apple' , 'Red', 'Blue', 'Yellow', 'Yellow', 'Yellow', 'Yellow'],
        'Column C':[100, 50, np.nan , 23 , np.nan , 199 , np.nan , 1,np.nan]
    }) 

# 计算Column D
df['Column D'] = df.groupby('Column A')['Column C'].transform('sum')

# 按Column A分组保留第一行,重置索引
result = df.drop_duplicates(subset='Column A', keep='first').reset_index(drop=True)

# 输出结果
print(result)

步骤说明

  • 分组求和逻辑:pandas的sum()方法默认开启skipna=True,会自动忽略NaN值,等价于NaN按0计算,不管Column A对应的值是否重复,按Column A分组求和得到的结果刚好匹配需求里Column D的计算规则
  • 去重逻辑:指定subset='Column A'按A列去重,keep='first'保留每个分组的第一行,最后重置索引即可得到目标输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:24:03