Heim >Backend-Entwicklung >Python-Tutorial >Wie können Sie mehrere DataFrames basierend auf einer gemeinsamen Spalte ohne komplexe Iteratoren effizient zusammenführen?
Problemstellung
Das Zusammenführen mehrerer Datenrahmen kann eine entmutigende Aufgabe sein, insbesondere wenn die Datenrahmen unterschiedliche Datenrahmen aufweisen Formen und Strukturen. Der gebräuchlichste Ansatz besteht darin, die Funktion merge() iterativ zu verwenden, was für eine große Anzahl von Datenrahmen komplex und unlesbar werden kann.
Frage
Wie kann man mehrere zusammenführen? Datenrahmen, die auf einer gemeinsamen Spalte basieren, effizient und elegant, ohne auf Rekursion oder Komplexität zurückzugreifen Iteratoren?
Antwort
Die Funktion reduce() bietet eine Alternative zur Rekursion zum Zusammenführen mehrerer Datenrahmen. Die Funktion „reduce()“ wendet eine Funktion iterativ auf eine Liste von Elementen an und reduziert sie auf einen einzelnen Wert. In diesem Fall ist die Funktion die Funktion merge() und die Liste der Elemente ist die Liste der Datenrahmen.
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)
Erklärung
Die Reduce() Die Funktion wird mit der Funktion pd.merge als erstem Argument und der Liste der Datenrahmen als zweitem aufgerufen. Die Funktion pd.merge() führt zwei Datenrahmen zusammen und die Funktion Reduce() führt das Ergebnis iterativ mit dem nächsten Datenrahmen in der Liste zusammen, wodurch die Liste auf einen einzigen zusammengeführten Datenrahmen reduziert wird.
Das on='date' Das Argument gibt an, dass die Zusammenführung basierend auf der Spalte „Datum“ durchgeführt werden soll, von der angenommen wird, dass sie allen Datenrahmen gemeinsam ist. Der Parameter how='outer' gibt an, dass alle Zeilen aus beiden Datenrahmen in den zusammengeführten Datenrahmen einbezogen werden sollen, unabhängig davon, ob sie entsprechende Werte für die Spalte „Datum“ haben. Dadurch wird sichergestellt, dass alle Zeilen mit demselben Datumswert in einer einzigen Zeile zusammengeführt werden.
Ergebnis
Die df_merged-Variable enthält jetzt einen zusammengeführten Datenrahmen mit allen Daten aus dem einzelne Datenrahmen, wobei die entsprechenden Zeilen aus jedem Datenrahmen basierend auf der Spalte „Datum“ ausgerichtet werden. Diese Methode ist effizient, flexibel und einfach zu lesen, was sie zu einer idealen Lösung zum Zusammenführen einer großen Anzahl von Datenrahmen macht.
Das obige ist der detaillierte Inhalt vonWie können Sie mehrere DataFrames basierend auf einer gemeinsamen Spalte ohne komplexe Iteratoren effizient zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!