我想对熊猫数据框中每一行的所有值求和,如果它们大于零
我的数据框如下:
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
答案 0 :(得分:2)
尝试一下
df.where(df > 0).sum(1)
Out[34]:
0 10.0
1 11.0
2 4.0
dtype: float64
答案 1 :(得分:1)
作为一种替代解决方案,我们可以使用.clip(..)
[pandas-doc]将0
以下的所有值映射到0
,然后在第二个轴上求和:
>>> df.clip(lower=0).sum(axis=1)
0 10
1 11
2 4
dtype: int64