对于每一行,返回最小值的列名称 - pandas

vag*_*ond 3 python dataframe pandas

我试图找到pandas相当于这个问题.

对于每一行,返回最大值的列名

我想在下面的数据框中添加一个新列,这是每行中最低值的列名.

   Multi-Use  Charging  Performer  Controls  Value for Money  All Rounder
0   1.569541  0.290916   2.396734  0.881500         3.171563     1.950175
1   0.906542  2.296172   0.162809  1.604936         0.730633     0.532835
2   0.442924  0.970764   1.264364  0.295140         2.034826     0.824529
3   0.167663  1.367973   0.877306  0.683562         1.653964     0.444136
4   0.870290  0.547844   1.703054  0.209975         2.476787     1.260371
Run Code Online (Sandbox Code Playgroud)

得到min很简单: df.iloc[:, 0:6].min(axis=1)

如何根据min返回列名?

Vai*_*ali 7

你可以做

df['lowest_col'] = df.idxmin(axis=1)
Run Code Online (Sandbox Code Playgroud)

你得到

    Multi-Use   Charging    Performer   Controls    Value for Money All Rounder lowest_col
0   1.569541    0.290916    2.396734    0.881500    3.171563    1.950175    Charging
1   0.906542    2.296172    0.162809    1.604936    0.730633    0.532835    Performer
2   0.442924    0.970764    1.264364    0.295140    2.034826    0.824529    Controls
3   0.167663    1.367973    0.877306    0.683562    1.653964    0.444136    Multi-Use
4   0.870290    0.547844    1.703054    0.209975    2.476787    1.260371    Controls
Run Code Online (Sandbox Code Playgroud)