根据行条件对Pandas DataFrame的两列求和

1 投票
1 回答
1236 浏览
提问于 2025-04-17 22:58
    A   B   C
0   0   -2  1
1   1   -1  2
2   2   0   3
3   3   1   0
4   4   2   5

我想要新增一列,这一列的内容是这样的:如果B列的值大于0,就取B列的元素;如果B列的值小于等于0,就取C列的元素。

    A   B   C    D
0   0   -2  1    1
1   1   -1  2    2 
2   2   0   3    3
3   3   1   0    1  
4   4   2   5    5 

1 个回答

2

使用布尔遮罩:

In [14]: df[df[['B', 'C']] > 0].max(1)
Out[14]: 
0    1
1    2
2    3
3    1
4    5
dtype: float64

In [15]: df['D'] = df[df[['B', 'C']] > 0].max(1)

撰写回答