如何根据条件计算多个列

时间:2016-05-26 21:16:12

标签: pandas dataframe

数据帧:

  a b c d name
0 t t t t john
1 t t t f doe
2 t t f f maria
3 t f f f smith

我想计算每列中的真实数

df[["a", "b", "c", "d"]].sum()返回Series([], dtype: float64)

我想得到

a b c d
4 3 2 1

1 个答案:

答案 0 :(得分:3)

您可以在布尔列上使用sum。

"t""f"是字符串而不是布尔值,你必须先将它们转换为布尔值:

In [11]: df == "t"
Out[11]:
      a      b      c      d   name
0  True   True   True   True  False
1  True   True   True  False  False
2  True   True  False  False  False
3  True  False  False  False  False

In [12]: (df == "t").sum()
Out[12]:
a       4
b       3
c       2
d       1
name    0
dtype: int64

仅列在那些列上:

In [13]: (df[["a", "b", "c", "d"]] == "t").sum()
Out[13]:
a    4
b    3
c    2
d    1
dtype: int64