统计数据帧列中True/False的出现次数
问题描述
有没有一种方法可以计算一列中布尔值的出现次数,而不必遍历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
如果要分别计算False
和True
,可以使用pd.Series.sum()
+~
:
>> df['boolean_column'].values.sum() # True
3
>> (~df['boolean_column']).values.sum() # False
2
相关文章