Pandas : mettre à jour les valeurs des colonnes en fonction d’un autre DataFrame
Souvent, vous souhaiterez peut-être mettre à jour les valeurs d’une colonne d’un DataFrame pandas en utilisant les valeurs d’un autre DataFrame.
Heureusement, cela est facile à faire en utilisant la fonction merge() dans pandas.
L’exemple suivant montre comment procéder.
Exemple : mettre à jour les valeurs de colonne dans Pandas DataFrame en fonction d’un autre DataFrame
Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :
import pandas as pd #create DataFrame df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, 28], 'assists': [0, 0, 0, 1, 0, 0, 0, 1]}) #view DataFrame print(df1) team points assists 0 A 18 0 1 B 22 0 2 C 19 0 3 D 14 1 4 E 14 0 5 F 11 0 6 G 20 0 7 H 28 1
Supposons maintenant que les valeurs de la colonne d’assistance ne soient pas mises à jour dans ce DataFrame.
Cependant, supposons que nous ayons le deuxième DataFrame suivant qui a des valeurs mises à jour pour la colonne d’assistance :
#create second DataFrame df2 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, 28], 'assists': [8, 7, 7, 4, 9, 12, 3, 5]}) #view second DataFrame print(df2) team points assists 0 A 18 8 1 B 22 7 2 C 19 7 3 D 14 4 4 E 14 9 5 F 11 12 6 G 20 3 7 H 28 5
Nous pouvons utiliser la syntaxe suivante pour mettre à jour les valeurs de la colonne d’assistance du premier DataFrame en utilisant les valeurs de la colonne d’assistance du deuxième DataFrame :
#merge two DataFrames
df1 = df1.merge(df2, on='team', how='left')
#drop original DataFrame columns
df1.drop(['points_x', 'assists_x'], inplace=True, axis=1)
#rename columns
df1.rename(columns={'points_y':'points','assists_y':'assists'}, inplace=True)
#view updated DataFrame
print(df1)
team points assists
0 A 18 8
1 B 22 7
2 C 19 7
3 D 14 4
4 E 14 9
5 F 11 12
6 G 20 3
7 H 28 5
Notez que les valeurs de la colonne d’assistance du premier DataFrame ont été mises à jour en utilisant les valeurs de la colonne d’assistance du deuxième DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment supprimer la première ligne dans Pandas DataFrame
Comment supprimer la première colonne dans Pandas DataFrame
Comment supprimer les colonnes en double dans Pandas