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!