我有一个名为m的数据框,它有三列a
,b
,c
。我想将列b
与a
,c
进行比较,并将值放入列d
。
a b c 1 5 7 2 7 8 3 1 9 4 8 6
但是当我在下面的代码中尝试这个时,我得到了错误
系列的真值是模棱两可的。使用a.empty,a.bool(),a.item(),a.any()或a.all()
代码:
if m['b'] < m['a']:
m['d'] = m['a']
elif m['d'] > m['c']:
m['d'] = m['c']
else:
m['d'] = m['b']
m
有办法做到这一点吗?
答案 0 :(得分:2)
您可以使用双numpy.where
:
m['d'] = np.where(m['b'] < m['a'], m['a'], np.where(m['b'] > m['c'], m['c'], m['b']) )
print m
a b c d
0 1 5 7 5
1 2 7 8 7
2 3 1 9 3
3 4 8 6 6