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