Maison > développement back-end > Tutoriel Python > Comment fusionner efficacement plusieurs DataFrames Pandas basés sur une colonne commune ?

Comment fusionner efficacement plusieurs DataFrames Pandas basés sur une colonne commune ?

Barbara Streisand
Libérer: 2024-11-25 15:25:16
original
895 Les gens l'ont consulté

How to Efficiently Merge Multiple Pandas DataFrames Based on a Common Column?

Fusion de plusieurs DataFrames sur des colonnes dans Pandas avec des jointures à trois voies

La fusion de données, tâche fondamentale dans l'analyse des données, vous permet de combiner données provenant de plusieurs sources. Dans Pandas, la fonction join() est un outil puissant pour fusionner des dataframes. Cependant, lorsque vous joignez plusieurs trames de données, vous pouvez rencontrer des problèmes liés aux schémas d'indexation hiérarchique.

Jointures à trois voies utilisant une colonne commune

Considérez le scénario dans lequel vous avez trois Fichiers CSV, chacun contenant des informations sur le même ensemble de personnes. La première colonne de chaque fichier est le nom de la personne, tandis que les colonnes suivantes représentent ses attributs. Votre objectif est de combiner ces fichiers en un seul CSV, chaque ligne contenant tous les attributs de chaque personne unique.

Indexation hiérarchique et multi-index

Dans Pandas, multi-index fait référence à un schéma d'indexation dans lequel chaque niveau d'index représente une colonne différente. Lors de la jonction de dataframes, un multi-index est utilisé pour aligner les données en fonction de valeurs partagées. Dans votre cas, la fonction "join" peut spécifier que vous avez besoin d'un multi-index car vous vous joignez sur une seule colonne (nom), qui est l'index dans chaque dataframe.

Fusionner des dataframes sans Indexation hiérarchique

Cependant, certains scénarios peuvent ne pas nécessiter d'indexation hiérarchique. Si les trames de données ont une colonne commune, vous pouvez utiliser la fonction lambda et le package functools pour simplifier le processus de fusion. Voici un exemple :

import pandas as pd
import functools as ft

dfs = [df1, df2, df3, ..., dfN]

df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)
Copier après la connexion

Dans ce code :

  • dfs est une liste contenant les dataframes à fusionner.
  • ft.reduce applique la fonction lambda à chaque paire de trames de données, en les fusionnant en fonction de la colonne "nom".
  • df_final est le résultat dataframe, contenant tous les attributs de chaque personne unique.

Cette approche est pratique pour fusionner plusieurs dataframes sans avoir à spécifier des schémas d'indexation hiérarchique complexes.

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