我有以下数据框:
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 :(得分:0)
您可以使用where
过滤值。
df['e'] = df.idxmin(axis=1).where(df.min(axis=1) < 11)