Comment trouver la valeur minimum dans une colonne d'une dataframe avec pandas en python ?

Published: 27 juillet 2020

Tags: Python; Pandas; DataFrame;

DMCA.com Protection Status

Exemple de comment trouver la valeur minimum dans une colonne d'une dataframe avec pandas:

Créer une dataframe

Créons par exemple la dataframe suivante

import pandas as pd

data = {'Name':['Ben','Anna','Zoe','Tom','John','Steve','Becky','Bob'], 
        'Age':[36,27,20,12,30,20,22,21]}

df = pd.DataFrame(data)

df

ce qui donne

    Name  Age
0    Ben   36
1   Anna   27
2    Zoe   20
3    Tom   12
4   John   30
5  Steve   20
6  Becky   22
7    Bob   21

Trouver la valeur minimum dans la colonne Age

Pour trouver la valeur minimum dans la colonne Age par exemple, une solution est d'utiliser la fonction pandas min:

df['Age'].min()

donne ici

12

Trouver l'indice de la valeur minimum dans la colonne Age

On peut aussi retrouver l'indice de la ligne correspondant a la valeur min avec la fonction pandas.DataFrame.idxmin

df['Age'].idxmin()

donne

3

En utilisant l'indice ci dessus:

df.iloc[3,:]

on obtient:

Name    Tom
Age      12
Name: 3, dtype: object

Cas avec plusieurs valeurs minimum dans une même colonne

Prenons un exemple avec une valeur min présente dans deux lignes:

import pandas as pd

data = {'Name':['Ben','Anna','Zoe','Tom','John','Steve','Becky','Bob'], 
        'Age':[12,27,20,12,30,20,22,21]}

df = pd.DataFrame(data)

print(df)

donne ici

    Name  Age
0    Ben   12
1   Anna   27
2    Zoe   20
3    Tom   12
4   John   30
5  Steve   20
6  Becky   22
7    Bob   21

Alors la fonction pandas.DataFrame.min:

df['Age'].min()

donne toujours

12

mais idxmin

df['Age'].idxmin()

donne seulement l'indice de la première ligne avec la valeur min:

0

Pour obtenir les lignes avec la valeur min on peut faire comme ceci

df[ df['Age'] == df['Age'].min() ]

  Name  Age
0  Ben   12
3  Tom   12

et pour obtenir les indices

df[ df['Age'] == df['Age'].min() ].index

donne

Int64Index([0, 3], dtype='int64')

Références