Heim >Backend-Entwicklung >Python-Tutorial >Wie können Sie mehrere DataFrames basierend auf einer gemeinsamen Spalte ohne komplexe Iteratoren effizient zusammenführen?

Wie können Sie mehrere DataFrames basierend auf einer gemeinsamen Spalte ohne komplexe Iteratoren effizient zusammenführen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-21 09:05:11941Durchsuche

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

Mehrere Datenrahmen 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!

Stellungnahme:
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
Vorheriger Artikel:TageszeichenfolgeNächster Artikel:Tageszeichenfolge