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 .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *