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')