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

如何让Pandas的value_counts()将含NaN的ColA类别计数设为0?

问题描述

我有如下Pandas数据集:

ColAColB
A01
A02
B03
B04
C05
DNaN

执行代码 df.ColA.value_counts() 后,得到结果:

ColA
A2
B2
C1
D1

现在需要实现让D的计数变为0,得到如下结果:

ColA
A2
B2
C1
D0
解决方案

核心逻辑是仅统计ColB不为空的行中ColA的出现次数,同时保留原始ColA的所有类别,无匹配项的补0。以下是两种可行方法:

方法1:使用groupby+count结合reindex补全类别

# 按ColA分组统计ColB非空的数量,再用reindex补全所有ColA的唯一值,缺失项填0
result = df.groupby('ColA')['ColB'].count().reindex(df['ColA'].unique(), fill_value=0)

方法2:过滤非空行后用value_counts+reindex补全

# 先过滤ColB不为空的行,统计ColA的出现次数,再补全所有ColA的唯一值
result = df[df['ColB'].notna()]['ColA'].value_counts().reindex(df['ColA'].unique(), fill_value=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:03:29