2016-03-10 40 views
2

我有一個叫做m的數據框,它有三列a,b,c。我想將b列與a,c進行比較,並將值存入列d比較熊貓中的兩列 - 錯誤:一個序列的真值不明確

 
a b c 
1 5 7 
2 7 8 
3 1 9 
4 8 6 

但是當我嘗試這在下面的代碼,我得到了錯誤的

The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or 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 

有沒有辦法做到這一點?

+2

大熊貓文檔解釋[這裏](http://pandas.pydata.org/pandas-docs/stable/gotchas.html)(第一個結果谷歌的錯誤),並有很多重複的問題/答案,解釋爲什麼錯誤出現在堆棧溢出了。 –

回答

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 
+0

感謝您編輯問題 –