La différence entre axis=0 et axis=1 dans Pandas
De nombreuses fonctions dans pandas nécessitent que vous spécifiiez un axe le long duquel appliquer un certain calcul.
Généralement, la règle empirique suivante s’applique :
- axis=0 : Appliquer le calcul « par colonne »
- axis=1 : Appliquer le calcul « par ligne »
Les exemples suivants montrent comment utiliser l’argument axis dans différents scénarios avec le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
'points': [25, 12, 15, 14, 19, 23, 25, 29],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
df
team points assists rebounds
0 A 25 5 11
1 A 12 7 8
2 B 15 7 10
3 B 14 9 6
4 B 19 12 6
5 B 23 9 5
6 C 25 9 9
7 C 29 4 12
Exemple 1 : Trouver la moyenne selon différents axes
Nous pouvons utiliser axis=0 pour trouver la moyenne de chaque colonne du DataFrame :
#find mean of each column
df.mean(axis=0)
points 20.250
assists 7.750
rebounds 8.375
dtype: float64
La sortie affiche la valeur moyenne de chaque colonne numérique du DataFrame.
Notez que pandas évite automatiquement de calculer la moyenne de la colonne « équipe » car il s’agit d’une colonne de caractères.
Nous pouvons également utiliser axis=1 pour trouver la moyenne de chaque ligne du DataFrame :
#find mean of each row
df.mean(axis=1)
0 13.666667
1 9.000000
2 10.666667
3 9.666667
4 12.333333
5 12.333333
6 14.333333
7 15.000000
dtype: float64
À partir du résultat, nous pouvons voir :
- La valeur moyenne de la première ligne est de 13,667 .
- La valeur moyenne dans la deuxième ligne est de 9 000 .
- La valeur moyenne dans la troisième ligne est 10,667 .
Et ainsi de suite.
Exemple 2 : Trouver la somme selon différents axes
Nous pouvons utiliser axis=0 pour trouver la somme de colonnes spécifiques dans le DataFrame :
#find sum of 'points' and 'assists' columns
df[['points', 'assists']].sum(axis=0)
points 162
assists 62
dtype: int64
Nous pouvons également utiliser axis=1 pour trouver la somme de chaque ligne du DataFrame :
#find sum of each row
df.sum(axis=1)
0 41
1 27
2 32
3 29
4 37
5 37
6 43
7 45
dtype: int64
Exemple 3 : Trouver Max le long de différents axes
Nous pouvons utiliser axis=0 pour trouver la valeur maximale de colonnes spécifiques dans le DataFrame :
#find max of 'points', 'assists', and 'rebounds' columns
df[['points', 'assists', 'rebounds']].max(axis=0)
points 29
assists 12
rebounds 12
dtype: int64
Nous pouvons également utiliser axis=1 pour trouver la valeur maximale de chaque ligne du DataFrame :
#find max of each row
df.max(axis=1)
0 25
1 12
2 15
3 14
4 19
5 23
6 25
7 29
dtype: int64
À partir du résultat, nous pouvons voir :
- La valeur maximale dans la première ligne est 25 .
- La valeur maximale dans la deuxième ligne est 12 .
- La valeur maximale dans la troisième ligne est 15 .
Et ainsi de suite.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment calculer la moyenne des colonnes dans Pandas
Comment calculer la somme des colonnes dans Pandas
Comment trouver la valeur maximale des colonnes dans Pandas