首页 > 解决方案 > 熊猫找到对应于绝对最小值的值

问题描述

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

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)了,但它返回了绝对值的最小值,从而失去了符号。

标签: pythonpandas

解决方案


尝试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

推荐阅读