python pandas bedingte count über mehrere Spalten

Ich habe einen dataframe (die sogenannten panel - [xyz]) mit nur 1, 0 und -1. Die Maße sind: Zeilen, die mit 0:10 und die Spalten a:j.

Ich würde gern ein anderes dataframe (df), die die gleiche vertikale Achse, aber nur 3 Spalten:
col_1 = Anzahl aller nicht-null-Werte (1s und 1s)
col_2 = Anzahl aller 1en
col_3 = count all-1s

Fand ich das in der Suche SO:

HTML:

df[col_1] = (pan[xyz]['a','b','c','d','e'] > 0).count(axis=1)

...und haben versucht, viele verschiedene Iterationen, aber ich Schaffe es nicht, die bedingte (>0) zu unterscheiden zwischen den verschiedenen Werten im pan[xyz]. Die Anzahl ist immer = 5.

Jede Hilfe wäre sehr geschätzt werden.

Edit:

pan[xyz] =

HTML:

.	'a'	'b'	'c'	'd'	'e'	'f'	'g'	'h'	'i'	'j'
0	1	0	0	-1	0	0	-1	0	1	0
1	0	1	0	0	0	1	0	0	0	-1
2	1	0	0	0	0	-1	0	0	0	0
3	0	-1	0	0	0	0	0	1	0	0
4	0	0	0	1	0	0	-1	0	0	-1

df sein sollte =

HTML:

.	col_1	col_2	col_3
0	4	2	2
1	3	2	1
2	2	1	1
3	2	1	1
4	3	1	2

Aber das ist es, was ich für col_1 :

HTML:

df = (panel[xyz] > 0).count(axis=1)

df
Out[129]: 
0    10
1    10
2    10
3    10
4    10
dtype: int6

  • Danke JohnE, gute Beratung.
InformationsquelleAutor MJS | 2015-04-10
Schreibe einen Kommentar