У меня есть dataframe (панель [xyz]), содержащая только 1, 0 и -1. Размеры: строки 0:10 и столбцы a: j.python pandas условное число в столбцах
Я хотел бы создать другую dataframe (DF), который имеет ту же вертикальную ось, но только 3 колонки: col_1 = рассчитывать все ненулевые значения (1S и -1S) col_2 = сосчитать все 1s col_3 = подсчитывать все -1S
Я нашел это в поиске SO:
df[col_1] = (pan[xyz]['a','b','c','d','e'] > 0).count(axis=1)
... и попробовал много различных ITE rations, но я не могу получить условное (> 0), чтобы различать разные значения в pan [xyz]. Счет всегда равен 5.
Любая помощь будет очень признательна.
Edit:
сковорода [хуг] =
. \t 'a' \t 'b' \t 'c' \t 'd' \t 'e' \t 'f' \t 'g' \t 'h' \t 'i' \t 'j'
0 \t 1 \t 0 \t 0 \t -1 \t 0 \t 0 \t -1 \t 0 \t 1 \t 0
1 \t 0 \t 1 \t 0 \t 0 \t 0 \t 1 \t 0 \t 0 \t 0 \t -1
2 \t 1 \t 0 \t 0 \t 0 \t 0 \t -1 \t 0 \t 0 \t 0 \t 0
3 \t 0 \t -1 \t 0 \t 0 \t 0 \t 0 \t 0 \t 1 \t 0 \t 0
4 \t 0 \t 0 \t 0 \t 1 \t 0 \t 0 \t -1 \t 0 \t 0 \t -1
ДФ должен быть =
. \t col_1 \t col_2 \t col_3
0 \t 4 \t 2 \t 2
1 \t 3 \t 2 \t 1
2 \t 2 \t 1 \t 1
3 \t 2 \t 1 \t 1
4 \t 3 \t 1 \t 2
Но это то, что я получаю за col_1:
df = (panel[xyz] > 0).count(axis=1)
df
Out[129]:
0 10
1 10
2 10
3 10
4 10
dtype: int6
Thanks JohnE, good advice. – MJS