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)