添加一个新列,显示具有最小值(+条件)的另一列的名称

时间:2017-05-28 15:55:04

标签: python dataframe

我有以下数据框:

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()。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用where过滤值。

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