сумма значений строки, если она больше нуля - PullRequest
1 голос
/ 06 октября 2019

Я хочу суммировать все значения для каждой строки в фрейме данных панд, если они больше нуля

мой фрейм данных выглядит следующим образом:

 col1 col2 col3 col4
 5     4   -2     1
 3     6    2    -3
 2    -2    1     1

и я хочу добавить новыйстолбец с суммой положительных значений. Так должно выглядеть так:

 col1 col2 col3 col4 sum
 5     4   -2     1   10
 3     6    2    -3   11
 2    -2    1     1    2

Ответы [ 2 ]

2 голосов
/ 06 октября 2019

Попробуйте это

df.where(df > 0).sum(1)

Out[34]:
0    10.0
1    11.0
2     4.0
dtype: float64
1 голос
/ 06 октября 2019

В качестве альтернативного решения мы можем использовать .clip(..) [pandas-doc] , чтобы отобразить все значения ниже 0 в 0, а затем суммировать повторая ось:

>>> df.clip(lower=0).sum(axis=1)
0    10
1    11
2     4
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...