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

Python 添加一个新列,该列显示另一个具有最小值(+;条件)的列的名称,python,dataframe,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

我有以下数据帧:

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 ''
df['e']=df.idxmin(轴=1)如果df.min(轴=1)<11否则“
我得到一个错误:

ValueError:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()


我遗漏了什么?

您可以使用
where
过滤值

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