熊猫找到对应于绝对最小值的值

时间:2021-06-23 14:49:25

标签: python pandas

我试图从多列中找到对应于绝对最小值的实际值。例如:

df = pd.DataFrame({'A': [10, -5, -20, 50], 'B': [-5, 10, 30, 300], 'C': [15, 30, 15, 10]})

此输出应该是另一个具有 -5、-5、15 和 10 值的列。

我尝试了 df['D'] = df[['A', 'B', 'C']].abs().min(axis=1),但它返回绝对值的最小值,因此丢失了符号。

1 个答案:

答案 0 :(得分:2)

试试 idxmin

df['D'] = df.values[df.index,df.columns.get_indexer(df[['A', 'B', 'C']].abs().idxmin(1))]
df
Out[176]: 
    A    B   C   D
0  10   -5  15  -5
1  -5   10  30  -5
2 -20   30  15  15
3  50  300  10  10