Mehrere Datenrahmen basierend auf dem Datum zusammenführen
Sie haben mehrere Datenrahmen mit einer gemeinsamen Datumsspalte, aber unterschiedlicher Anzahl von Zeilen und Spalten. Das Ziel besteht darin, diese Datenrahmen zusammenzuführen, um Zeilen zu erhalten, in denen jedes Datum allen Datenrahmen gemeinsam ist.
Ineffizienter Rekursionsansatz
Ihr Versuch, eine Rekursionsfunktion zum Zusammenführen von Datenrahmen zu verwenden ist fehlerhaft. Die Funktion gerät in eine Endlosschleife, da sie sich ständig mit den gleichen Eingaben aufruft. Dieser Ansatz ist ineffizient und fehleranfällig.
Optimierte Lösung mit Reduce
Eine effizientere Methode zum Zusammenführen mehrerer Datenrahmen ist die Verwendung der Reduce-Funktion aus dem Functools-Modul. Diese Funktion reduziert eine Liste von Datenrahmen auf einen einzelnen Datenrahmen, indem sie wiederholt einen angegebenen Zusammenführungsvorgang auf benachbarte Datenrahmenpaare anwendet.
Der folgende Codeausschnitt veranschaulicht diesen Ansatz:
import pandas as pd from functools import reduce dfs = [df1, df2, df3] # list of dataframes df_merged = reduce(lambda left, right: pd.merge(left, right, on='date', how='outer'), dfs)
In diesem Code , reduziert die Reduce-Funktion die DFS-Liste auf einen einzelnen Datenrahmen, indem benachbarte Datenrahmenpaare iterativ zusammengeführt werden. Der Parameter on='date' gibt an, dass die Zusammenführung basierend auf der Datumsspalte durchgeführt werden soll. Der Parameter how='outer' stellt sicher, dass alle Zeilen aus beiden Datenrahmen in das zusammengeführte Ergebnis einbezogen werden, auch wenn sie nicht dasselbe Datum haben.
Vorteile der Reduce-Funktion
Die Verwendung der Reduzierfunktion bietet mehrere Vorteile:
Beispiel
Mit den bereitgestellten Datenrahmen df1, df2 und df3 würden Sie den folgenden zusammengeführten Datenrahmen erhalten:
DATE VALUE1 VALUE2 VALUE3 0 May 15, 2017 1901.00 2902.00 3903.00
Dieser Datenrahmen enthält nur Zeilen mit einem Datum, das allen drei Eingabedatenrahmen gemeinsam ist.
Das obige ist der detaillierte Inhalt vonWie füge ich mehrere Datenrahmen basierend auf einer gemeinsamen Datumsspalte effizient zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!