Maison >développement back-end >Tutoriel Python >Comment fusionner des DataFrames sur une colonne tout en préservant les informations initiales dans un DataFrame ?

Comment fusionner des DataFrames sur une colonne tout en préservant les informations initiales dans un DataFrame ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 12:50:02440parcourir

How to Merge DataFrames on a Column While Preserving the Initial Information in One 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 :

  • Colonnes de fusion multiples : En cas de fusion plusieurs colonnes, spécifiez-les dans le paramètre « on », par exemple, on=['Year','Code'].
  • Valeurs en double : Les valeurs de colonne de fusion en double peuvent provoquer des problèmes. Pensez à supprimer les doublons avant de fusionner ou à utiliser la carte par un dictionnaire pour sélectionner la valeur appropriée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn