汇总多个 Pandas 布尔列的结果

Summarising results of multiple Pandas Boolean columns

我有一个包含多个布尔列的 Pandas 数据集(有效地标记公司设定的可持续发展目标类型)。我想通过计算 True 和 False 出现的次数来总结这些列的结果。

数据集的简化示例:

data1 = [['Apple', True, True, True], ['Tesla', True, False, True], ['Nike', True, False, False]]
df1 = pd.DataFrame(data1, columns=['Company', 'Carbon-target', 'Water-target', 'Waste-target'])

  Company  Carbon-target  Water-target  Waste-target
0   Apple           True          True          True
1   Tesla           True         False          True
2    Nike           True         False         False

期望的输出:

                True         False
Carbon-target   3            0 
Water-target    1            2
Waste-target    2            1

目前,我能想到的唯一运算符是 word_count 函数,但需要多次迭代。有没有更简单的方法?

谢谢!

Select 布尔列

x = df.select_dtypes(bool)

计数 TrueFalse 个值

out = pd.DataFrame({True: x.sum(), False: df.shape[0] - x.sum()})

输出

               True  False
Carbon-target     3      0
Water-target      1      2
Waste-target      2      1