Comment ajouter deux DataFrames Pandas (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour ajouter les valeurs dans deux DataFrames pandas :

df3 = df1.add(df2, fill_value=0)

Cela produira un nouveau DataFrame qui contient la somme des éléments correspondants dans chaque DataFrame individuel.

Si un élément existe dans un DataFrame et pas dans l’autre, l’élément existant sera utilisé dans le DataFrame résultant.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment ajouter deux DataFrames Pandas

Supposons que nous ayons les deux DataFrames pandas suivants :

import pandas as pd

#create first DataFrame
df1 = pd.DataFrame({'points': [18, 22, 19, 14, 11],
                    'assists': [5, 11, 7, 9, 12]})

#view first DataFrame
print(df1)

   points  assists
0      18        5
1      22       11
2      19        7
3      14        9
4      11       12

#create second DataFrame
df2 = pd.DataFrame({'points': [10, 5, 4, 3, 9, 14],
                    'assists': [9, 7, 4, 2, 3, 3]})

#view second DataFrame
print(df2)

   points  assists
0      10        9
1       5        7
2       4        4
3       3        2
4       9        3
5      14        3

Nous pouvons utiliser la syntaxe suivante pour créer un nouveau DataFrame qui prend la somme des éléments correspondants dans chaque DataFrame individuel :

#create new DataFrame by adding two DataFrames
df3 = df1.add(df2, fill_value=0)

#view new DataFrame
print(df3)

   points  assists
0    28.0     14.0
1    27.0     18.0
2    23.0     11.0
3    17.0     11.0
4    20.0     15.0
5    14.0      3.0

Notez que le DataFrame résultant contient la somme des éléments correspondants dans chaque DataFrame individuel.

Notez que la ligne avec une valeur d’index de 5 n’existait que dans le deuxième DataFrame, donc les valeurs de cette ligne sont simplement les valeurs du deuxième DataFrame.

Notez également que depuis que nous avons effectué l’addition, chacune des valeurs du nouveau DataFrame est représentée sous forme de valeurs flottantes avec une décimale.

Pour reconvertir chacune de ces valeurs en entier, nous pouvons utiliser la fonction astype() :

#convert all columns in new DataFrame to integer
df3 = df3.astype('int64')

#view updated DataFrame
print(df3)

   points  assists
0      28       14
1      27       18
2      23       11
3      17       11
4      20       15
5      14        3

Chacune des valeurs du nouveau DataFrame est désormais des nombres entiers.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes chez les pandas :

Pandas : ajouter une colonne d’un DataFrame à un autre
Pandas : obtenez des lignes qui ne se trouvent pas dans un autre DataFrame
Pandas : comment vérifier si plusieurs colonnes sont égales

Ajouter un commentaire

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