3 votes

Pour chaque ligne, renvoyer le nom de la colonne de la plus petite valeur - pandas

J'essaie de trouver le pandas équivalent de cette question.

Pour chaque ligne, renvoyer le nom de la colonne de la valeur la plus grande.

Je veux ajouter une nouvelle colonne au cadre de données ci-dessous qui est le nom de la colonne de la valeur la plus basse dans chaque ligne.

   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

obtenir min est simple : df.iloc[:, 0:6].min(axis=1)

comment puis-je retourner le nom de la colonne en fonction du min ?

7voto

Vaishali Points 21664

Vous pouvez faire

df['lowest_col'] = df.idxmin(axis=1)

Vous obtenez

    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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X