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

Pandas Groupby agg保留空白值分组实现数值列聚合求和咨询

实现方案

首先你这个需求的核心是规避pandas groupby默认自动丢弃分组键为空(NaN)分组的默认规则,只要在groupby方法中指定dropna=False即可,完整实现代码如下:

1. 构造测试数据(和你提供的样本一致)

import pandas as pd

# 构造示例df,第一列空值对应NaN
df = pd.DataFrame(
    [
        ["A", 10],
        ["A", 20],
        [None, 15],
        [None, 20],
        ["B", 10],
        ["B", 10],
    ],
    columns=["col1", "col2"]
)

2. 分组聚合核心代码

# groupby指定dropna=False保留空分组,sort=False保留原始分组出现顺序
res = df.groupby("col1", dropna=False, sort=False)["col2"].agg(sum).reset_index()

# 可选:如果需要第一列空值显示为纯空白而非NaN,执行下面这行
res["col1"] = res["col1"].fillna("")

3. 输出结果验证

最终输出的res和你要求的结果完全一致:

col1  col2
0    A    30
1         35
2    B    20

参数说明

  • dropna=False:必选参数,pandas groupby默认该参数为True,会自动过滤掉分组键为NaN的分组,设为False后就可以保留空值分组
  • sort=False:可选参数,默认groupby会对分组键做升序排序,设为False后会按照分组键在原始数据中首次出现的顺序返回结果,更符合你给出的输出顺序
  • agg(sum):对分组后的第二列执行求和聚合,也可以替换为agg("sum"),效果完全相同

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:27:03