Для Панд естественным способом является использование value_counts
:
df = pd.DataFrame({'A': [True, False, True, False, True]})
print(df['A'].value_counts())
# True 3
# False 2
# Name: A, dtype: int64
Для вычисления True
или False
значений отдельно, не сравнивайте с True
/ False
явно, просто sum
и взять обратное логическое значение через ~
для подсчета False
значений:
print(df['A'].sum()) # 3
print((~df['A']).sum()) # 2
Это работает, потому что bool
является подклассом int
, иповедение также справедливо для массивов серии Pandas / NumPy.
В качестве альтернативы, вы можете рассчитать количество, используя NumPy:
print(np.unique(df['A'], return_counts=True))
# (array([False, True], dtype=bool), array([2, 3], dtype=int64))