2016-05-26 18 views
1

Datenrahmen zählen:Wie man mehrere Spalten basierend auf Bedingungen

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 

Ich möchte die Anzahl der wahren

in jeder Spalte zählen

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

Ich möchte

bekommen
a b c d 
4 3 2 1 

Antwort

3

Sie können die Summe für boolesche Spalten verwenden.

"t" und "f" sind Strings nicht boolean, Sie müssen sie zuerst boolean konvertieren:

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 

auf nur diesen Spalten:

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