Maison > Article > développement back-end > Comment fusionner des DataFrames sur une colonne tout en préservant les informations initiales dans un DataFrame ?
Fusionner des DataFrames sur une colonne tout en préservant les informations initiales
Malgré l'utilisation de la fonction de fusion de Pandas, vous rencontrez des difficultés pour fusionner les dataframes df1 et df2 sur la colonne 'Nom' tout en conservant les informations de df1.
Problème :
Dans votre opération de fusion :
df1 = pd.merge(df1, df2, on = 'Nom', comment = 'externe')
Vous effectuez une jointure externe, qui inclut des individus des deux dataframes. Cela provoque l'inclusion des individus de df2 dans df1, même s'ils n'apparaissent pas dans df1 à l'origine.
Solution :
Pour résoudre ce problème, vous pouvez en utiliser un des méthodes suivantes :
Méthode 1 : Utilisation de la carte par série créée par set_index :
df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])
Cette approche établit une série avec « Nom » comme index de colonne « Sexe » de df2. Ensuite, la colonne « Nom » de df1 est mappée à cette série pour attribuer les valeurs « Sexe » correspondantes. Les valeurs manquantes sont résolues en les définissant sur NaN.
Méthode 2 : Effectuer une jointure à gauche :
df = df1.merge(df2[['Name','Sex']], on='Name', how='left')
Une jointure à gauche garantit que les individus de df1 sont prioritaires, avec les valeurs manquantes remplies avec NaN si elles ne sont pas présentes dans df2.
Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!