2017-05-28 70 views
0

我有以下數據框:添加一個新列,顯示與最小值(+條件)的另一列名

a b c d 
3 5 7 11 
7 5 11 13 
11 13 7 17 
11 13 17 19 

我想補充另一列,對於每行給出的名稱只要最小值低於11(否則,保留空白)。 最終的結果將是:

a b c d e 
3 5 7 11 a 
7 5 11 13 b 
11 13 7 17 c 
11 13 17 19 

我知道我可以爲每個行的最小值得到列:

df.idxmin(axis=1) 

我也知道如何得到最小值:

df.min(axis=1) 

當我試圖把它在一個班輪完成:

df['e'] = df.idxmin(axis=1) if df.min(axis=1) < 11 else '' 

我得到的錯誤:

ValueError:系列的真值不明確。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

我錯過了什麼?

回答

0

您可以使用where來過濾值。

df['e'] = df.idxmin(axis=1).where(df.min(axis=1) < 11) 
相關問題