Comment fusionner efficacement plusieurs DataFrames basés sur une colonne commune sans itérateurs complexes ?

Linda Hamilton
Libérer: 2024-11-21 09:05:11
original
874 Les gens l'ont consulté

How can you efficiently merge multiple DataFrames based on a common column without complex iterators?

Fusion de plusieurs dataframes

Énoncé du problème

La fusion de plusieurs dataframes peut être une tâche ardue, en particulier lorsque les dataframes varient formes et structures. L'approche la plus courante consiste à utiliser la fonction merge() de manière itérative, ce qui peut devenir complexe et illisible pour un grand nombre de dataframes.

Question

Comment fusionner plusieurs des dataframes basées sur une colonne commune de manière efficace et élégante sans recourir à la récursivité ou à la complexité itérateurs ?

Réponse

La fonction reduce() fournit une alternative à la récursivité pour fusionner plusieurs trames de données. La fonction réduire() applique de manière itérative une fonction à une liste d’éléments, la réduisant à une seule valeur. Dans ce cas, la fonction est la fonction merge() et la liste des éléments est la liste des dataframes.

import pandas as pd
from functools import reduce

# Load dataframes
df1 = pd.read_csv('dataframe1.csv')
df2 = pd.read_csv('dataframe2.csv')
df3 = pd.read_csv('dataframe3.csv')

# Create a list of dataframes
dataframes = [df1, df2, df3]

# Merge dataframes
df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dataframes)
Copier après la connexion

Explication

La réduction() La fonction est appelée avec la fonction pd.merge comme premier argument et la liste des trames de données comme second. La fonction pd.merge() fusionne deux trames de données et la fonction réduire() fusionne de manière itérative le résultat avec la trame de données suivante dans la liste, réduisant la liste à une seule trame de données fusionnée.

Le on='date' L'argument spécifie que la fusion doit être effectuée en fonction de la colonne « date », qui est supposée être commune à toutes les trames de données. Le paramètre how='outer' indique que toutes les lignes des deux dataframes doivent être incluses dans le dataframe fusionné, qu'elles aient ou non des valeurs correspondantes pour la colonne « date ». Cela garantit que toutes les lignes avec la même valeur de date sont fusionnées en une seule ligne.

Résultat

La variable df_merged contient désormais une trame de données fusionnée avec toutes les données du trames de données individuelles, avec les lignes correspondantes de chaque trame de données alignées en fonction de la colonne « date ». Cette méthode est efficace, flexible et facile à lire, ce qui en fait une solution idéale pour fusionner un grand nombre de trames de donné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