Maison > développement back-end > Tutoriel Python > Comment fusionner efficacement plusieurs DataFrames en Python ?

Comment fusionner efficacement plusieurs DataFrames en Python ?

DDD
Libérer: 2024-11-29 13:13:09
original
780 Les gens l'ont consulté

How to Efficiently Merge Multiple DataFrames in Python?

Comment fusionner plusieurs dataframes

Problème

La fusion de plusieurs dataframes peut être complexe et frustrante, surtout lorsque le nombre de dataframes augmente. Bien qu'il soit possible d'utiliser des fonctions de fusion imbriquées, cette approche devient ingérable et sujette aux erreurs.

Solution

Pour une manière plus élégante et efficace de fusionner plusieurs trames de données, envisagez la solution suivante :

import pandas as pd
from functools import reduce

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

# Merge the dataframes using the reduce function
df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
Copier après la connexion

Cette solution utilise la fonction de réduction du module functools pour fusionner de manière itérative les dataframes. La fonction lambda définit l'opération de fusion, en utilisant la colonne spécifiée pour la jointure (« DATE ») et la méthode de fusion « externe » pour conserver toutes les lignes.

Avantages

Propre et compréhensible : Cette solution fournit une approche claire et concise pour fusionner plusieurs trames de données, éliminant ainsi le besoin d'une fusion imbriquée complexe fonctions.

Gérer efficacement plusieurs trames de données :Cette solution peut gérer n'importe quel nombre de trames de données, ce qui la rend évolutive et pratique.

Exemple

Considérez ce qui suit dataframes :

df_1:
May 19, 2017;1,200.00;0.1%
May 18, 2017;1,100.00;0.1%
May 17, 2017;1,000.00;0.1%
May 15, 2017;1,901.00;0.1%

df_2:
May 20, 2017;2,200.00;1000000;0.2%
May 18, 2017;2,100.00;1590000;0.2%
May 16, 2017;2,000.00;1230000;0.2%
May 15, 2017;2,902.00;1000000;0.2%

df_3:
May 21, 2017;3,200.00;2000000;0.3%
May 17, 2017;3,100.00;2590000;0.3%
May 16, 2017;3,000.00;2230000;0.3%
May 15, 2017;3,903.00;2000000;0.3%
Copier après la connexion

En utilisant la solution fournie, nous pouvons les fusionner dataframes :

df_merged = reduce(lambda left, right: pd.merge(left, right, on=['DATE'], how='outer'), dfs)
Copier après la connexion

Résultat :

DATE    VALUE1    VALUE2    VALUE3
May 15, 2017;  1,901.00;0.1%;  2,902.00;1000000;0.2%;   3,903.00;2000000;0.3%
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal