Comment trouver la somme des lignes dans un DataFrame Pandas
Souvent, vous pourriez être intéressé par calculer la somme d’une ou plusieurs lignes dans un DataFrame pandas. Heureusement, vous pouvez le faire facilement dans les pandas en utilisant la fonction sum(axis=1) .
Ce tutoriel montre plusieurs exemples d’utilisation de cette fonction sur le DataFrame suivant :
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [8, np.nan, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 90 25 5 8.0 1 85 20 7 NaN 2 82 14 7 10.0 3 88 16 8 6.0 4 94 27 5 6.0 5 90 20 7 9.0 6 76 12 6 6.0 7 75 15 9 10.0 8 87 14 9 10.0 9 86 19 5 7.07
Exemple 1 : trouver la somme de chaque ligne
Nous pouvons trouver la somme de chaque ligne du DataFrame en utilisant la syntaxe suivante :
df.sum(axis=1)
0 128.0
1 112.0
2 113.0
3 118.0
4 132.0
5 126.0
6 100.0
7 109.0
8 120.0
9 117.0
dtype: float64
La sortie nous dit :
- La somme des valeurs de la première ligne est 128 .
- La somme des valeurs de la deuxième ligne est 112 .
- La somme des valeurs de la troisième ligne est 113 .
Et ainsi de suite.
Exemple 2 : placer les sommes des lignes dans une nouvelle colonne
Nous pouvons utiliser le code suivant pour ajouter une colonne à notre DataFrame pour contenir les sommes des lignes :
#define new DataFrame column 'row_sum' as the sum of each row df['row_sum'] = df.sum(axis=1) #view DataFrame df rating points assists rebounds row_sum 0 90 25 5 8.0 128.0 1 85 20 7 NaN 112.0 2 82 14 7 10.0 113.0 3 88 16 8 6.0 118.0 4 94 27 5 6.0 132.0 5 90 20 7 9.0 126.0 6 76 12 6 6.0 100.0 7 75 15 9 10.0 109.0 8 87 14 9 10.0 120.0 9 86 19 5 7.0 117.0
Exemple 3 : Rechercher les sommes de lignes pour une courte liste de colonnes spécifiques
Nous pouvons utiliser le code suivant pour trouver la somme des lignes pour une courte liste de colonnes spécifiques :
#define new DataFrame column as sum of points and assists columns df['sum_pa'] = df['points'] + df['assists'] #view DataFrame df rating points assists rebounds sum_pa 0 90 25 5 8.0 30 1 85 20 7 NaN 27 2 82 14 7 10.0 21 3 88 16 8 6.0 24 4 94 27 5 6.0 32 5 90 20 7 9.0 27 6 76 12 6 6.0 18 7 75 15 9 10.0 24 8 87 14 9 10.0 23 9 86 19 5 7.0 24
Exemple 4 : Rechercher les sommes de lignes pour une longue liste de colonnes spécifiques
Nous pouvons utiliser le code suivant pour trouver la somme des lignes pour une liste plus longue de colonnes spécifiques :
#define col_list as a list of all DataFrame column names col_list= list(df) #remove the column 'rating' from the list col_list.remove('rating') #define new DataFrame column as sum of rows in col_list df['new_sum'] = df[col_list].sum(axis=1) #view DataFrame df rating points assists rebounds new_sum 0 90 25 5 8.0 38.0 1 85 20 7 NaN 27.0 2 82 14 7 10.0 31.0 3 88 16 8 6.0 30.0 4 94 27 5 6.0 38.0 5 90 20 7 9.0 36.0 6 76 12 6 6.0 24.0 7 75 15 9 10.0 34.0 8 87 14 9 10.0 33.0 9 86 19 5 7.0 31.0
Vous pouvez trouver la documentation complète de la fonction pandas sum() ici .