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
Linda Hamiltonoriginal
2024-12-01 05:32:14814parcourir

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)

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!

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