我有一个看起来像这样的 DataFrame:
x1 x2
0 4 1
1 0 2
2 5 1
3 0 3
4 4 2
现在我想创建另一个列,它取列的平均值,x1
如果是,则x2
返回:0
x1
0
x1 x2 ave
0 4 1 2.5
1 0 2 0
2 5 1 3
3 0 3 0
4 4 2 3
这也不是
data['ave'] = (data['x1'] + data['x2'])/2 if data['x1'] > 0 else 0
也不是这个
data['ave'] = (data['x1'] != 0)*(data['x1'] + data['x2'])/2
出于明显的原因(系列不能用于这些操作)。
我知道这很容易使用循环来完成,但是有没有一种速记的pythonic方式呢?
正确的python数据如下:
data = pd.DataFrame({'x1': (4,0,5,0,4), 'x2': (1,2,1,3,2)})