统计数据帧列中True/False的出现次数

2022-04-03 00:00:00 python pandas counter series boolean

问题描述

有没有一种方法可以计算一列中布尔值的出现次数,而不必遍历DataFrame?

做类似的事情

df[df["boolean_column"]==False]["boolean_column"].sum()

将不起作用,因为False的值为0,因此零和将始终返回0。

显然,您可以通过循环遍历列并检查来计算出现的次数,但我想知道是否有一种蟒蛇式的方法来做到这一点。


解决方案

使用pd.Series.value_counts()

>> df = pd.DataFrame({'boolean_column': [True, False, True, False, True]})
>> df['boolean_column'].value_counts()
True     3
False    2
Name: boolean_column, dtype: int64

如果要分别计算FalseTrue,可以使用pd.Series.sum()+~

>> df['boolean_column'].values.sum()  # True
3
>> (~df['boolean_column']).values.sum() # False
2

相关文章