Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich mehrere Datenrahmen basierend auf einer gemeinsamen Datumsspalte effizient zusammen?

Wie füge ich mehrere Datenrahmen basierend auf einer gemeinsamen Datumsspalte effizient zusammen?

Susan Sarandon
Freigeben: 2024-11-12 12:36:02
Original
1011 Leute haben es durchsucht

How do I efficiently merge multiple dataframes based on a common date column?

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)
Nach dem Login kopieren

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:

  • Einfachheit: Die Der Code ist prägnant und leicht zu verstehen.
  • Keine Verschachtelung: Im Gegensatz zu Ihrem Rekursionsansatz gibt es keine Verschachtelung von Zusammenführungsvorgängen, wodurch das Risiko von Endlosschleifen ausgeschlossen wird.
  • Erweiterbarkeit: Sie können Datenrahmen zur DFS-Liste hinzufügen oder daraus entfernen, um den Zusammenführungsvorgang zu ändern dynamisch.

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage