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

Pandas空列取特定值value_counts触发KeyError,需返回0计数

解决Pandas value_counts获取不存在值时返回0的问题

当你从DataFrame某列的value_counts()结果中访问不存在的字符串值时(比如列全为空字符串时访问'Tom'),会触发KeyError。要实现不存在时返回0计数,有两种简单方案:

方法1:使用Series的get()方法

value_counts()返回的是Pandas Series,Series的get()方法支持指定默认值,当目标索引不存在时自动返回该默认值:

import pandas as pd

data = {'Name': ['', '', '', ''],
        'Age': [29, 21, 19, 18]}
df = pd.DataFrame(data)

# 获取'Tom'的计数,不存在则返回0
tom_count = df['Name'].value_counts().get('Tom', 0)
print(tom_count)  # 输出:0

方法2:使用reindex()填充缺失索引

通过reindex()指定要查询的索引,并用fill_value参数设置缺失时的填充值:

tom_count = df['Name'].value_counts().reindex(['Tom'], fill_value=0).iloc[0]
print(tom_count)  # 输出:0

原代码报错原因

原代码直接用[]访问Series索引时,若索引不存在(比如全为空的列的value_counts()里只有空字符串的计数,没有'Tom'),Pandas会抛出KeyError。而上述两种方法都能避免这个问题,确保不存在的目标值返回0计数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:04:50