将2列pandas DataFrame与行条件相加

时间:2014-03-19 13:59:29

标签: python pandas

    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中选取元素,否则从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 个答案:

答案 0 :(得分: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)