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

Pandas解决无False实例时value_counts取值异常问题

解决DataFrame统计False次数时无False返回异常的问题

当你用value_counts()[False]统计列中False的出现次数时,若该列没有False值,value_counts()返回的Series里不会包含False这个索引,直接通过[False]访问会返回整个Series的内容(而非预期的0)。以下是两种简单的修复方案:

方案一:使用get()方法指定默认值

Series.get()方法允许你在索引不存在时返回预设的默认值,完美适配这种场景:

A_CHECK_false_count = masterdf['A'].value_counts().get(False, 0)
B_CHECK_false_count = masterdf['B'].value_counts().get(False, 0)  # 无False时返回0
C_CHECK_false_count = masterdf['C'].value_counts().get(False, 0)

d = {'A_CHECK_Total': [A_CHECK_false_count], 
     'B_CHECK_Total': [B_CHECK_false_count], 
     'C_CHECK_Total': [C_CHECK_false_count]}

FalseCountCheck = pd.DataFrame(data=d)

方案二:直接统计False的数量

更直观的方式是直接对布尔列进行条件统计,不需要依赖value_counts():

# 方法1:判断等于False
A_CHECK_false_count = (masterdf['A'] == False).sum()
B_CHECK_false_count = (masterdf['B'] == False).sum()
C_CHECK_false_count = (masterdf['C'] == False).sum()

# 方法2:利用布尔取反(~True = False)
# A_CHECK_false_count = (~masterdf['A']).sum()

d = {'A_CHECK_Total': [A_CHECK_false_count], 
     'B_CHECK_Total': [B_CHECK_false_count], 
     'C_CHECK_Total': [C_CHECK_false_count]}

FalseCountCheck = pd.DataFrame(data=d)

这两种方法都能确保当列中没有False时,返回值为0,不会出现异常内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:01:23