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

如何使用Pandas groupby()实现分组列值运算及NaN默认值处理

问题分析与解决方案

你的代码逻辑存在错误:groupby("A")["A"].count()获取的是每个分组的行数,再与填充后的count_of_elmt_A列相乘,完全偏离了“先填充NaN为1,再计算分组总和”的需求。

正确实现步骤

  • 第一步:将count_of_elmt_A列中的NaN值替换为1
  • 第二步:按A列分组,对处理后的count_of_elmt_A列求和

代码实现

方法一(不修改原DataFrame)

import pandas as pd

data = {"A":["x","x","y","z"], "B": ["", "k", "l", "j"], "count_of_elmt_A": [10, 3, None, 4]}
df = pd.DataFrame(data)

# 先填充NaN为1,再按A分组求和并转为整数
result = df["count_of_elmt_A"].fillna(1).groupby(df["A"]).sum().astype(int)
print(result)

方法二(修改原DataFrame后分组)

import pandas as pd

data = {"A":["x","x","y","z"], "B": ["", "k", "l", "j"], "count_of_elmt_A": [10, 3, None, 4]}
df = pd.DataFrame(data)

# 先填充NaN为1
df["count_of_elmt_A"] = df["count_of_elmt_A"].fillna(1)
# 按A分组求和并转为整数
result = df.groupby("A")["count_of_elmt_A"].sum().astype(int)
print(result)

输出结果

运行后会得到预期的结果:

A
x    13
y     1
z     4
Name: count_of_elmt_A, dtype: int64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 20:12:38