Comment trouver la valeur maximum 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 maximum 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':[20,27,20,43,30,20,22,21]}

df = pd.DataFrame(data)

df

ce qui donne

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

Trouver la valeur maximum dans la colonne Age

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

df['Age'].max()

donne ici

43

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

On peut aussi retrouver l'indice de la ligne correspondant a la valeur max avec la fonction idxmax

df['Age'].idxmax()

donne

3

En utilisant l'indice ci dessus:

df.iloc[3,:]

on obtient:

Name    Tom
Age      43
Name: 3, dtype: object

Cas avec plusieurs valeurs maximum dans une même colonne

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

import pandas as pd

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

df = pd.DataFrame(data)

print(df)

donne ici

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

Alors la fonction max:

df['Age'].max()

donne toujours

43

mais idxmax

df['Age'].idxmax()

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

0

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

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

  Name  Age
0  Ben   43
3  Tom   43

et pour obtenir les indices

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

donne

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

Références