Maison > développement back-end > Tutoriel Python > Comment effectuer une jointure à trois de Pandas DataFrames basée sur une seule colonne ?

Comment effectuer une jointure à trois de Pandas DataFrames basée sur une seule colonne ?

Linda Hamilton
Libérer: 2024-12-01 05:32:14
original
802 Les gens l'ont consulté

How to Perform a Three-Way Join of Pandas DataFrames Based on a Single Column?

Effectuer des jointures à trois voies sur des cadres de données Pandas basés sur des colonnes

Lorsque vous travaillez avec des ensembles de données disparates, les fusionner pour obtenir une vue complète peut être cruciale. Dans la bibliothèque pandas de Python, la fonction join() offre un moyen puissant de combiner plusieurs dataframes basés sur un index commun.

Question :

Vous possédez trois fichiers CSV, chacune contenant des noms de personnes dans la première colonne et divers attributs dans les colonnes restantes. Votre objectif est de « joindre » ces fichiers en un seul CSV, chaque ligne représentant une personne unique et tous ses attributs.

Initialement, la fonction join() implique la nécessité d'un multiindex. Cependant, la confusion survient lorsque l'on tente de se joindre sur la base d'un seul index.

Réponse :

Pour obtenir la jointure à trois souhaitée, vous pouvez utiliser les functools. fonction de réduction, qui facilite une opération de réduction séquentielle sur les trames de données. Voici comment procéder :

import functools as ft
dfs = [df0, df1, df2, ..., dfN]  # List of dataframes
df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
Copier après la connexion

Cette approche vous permet de fusionner un nombre arbitraire de trames de données basées sur une colonne commune, telle que « nom » dans votre cas. La fonction réduire() applique de manière itérative la fonction pandas merge() aux trames de données de la liste, ce qui donne lieu à une trame de données unique appelée df_final qui contient toutes les données d'attribut fusionnées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal