Heim >Backend-Entwicklung >Python-Tutorial >Wie lassen sich mehrere Pandas-DataFrames basierend auf einer gemeinsamen Spalte effizient zusammenführen?

Wie lassen sich mehrere Pandas-DataFrames basierend auf einer gemeinsamen Spalte effizient zusammenführen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 15:25:16838Durchsuche

How to Efficiently Merge Multiple Pandas DataFrames Based on a Common Column?

Mehrere DataFrames auf Spalten in Pandas mit Drei-Wege-Joins zusammenführen

Das Zusammenführen von Daten, eine grundlegende Aufgabe in der Datenanalyse, ermöglicht Ihnen das Kombinieren Daten aus mehreren Quellen. In Pandas ist die Funktion „join()“ ein leistungsstarkes Tool zum Zusammenführen von Datenrahmen. Beim Zusammenfügen mehrerer Datenrahmen können jedoch Herausforderungen im Zusammenhang mit hierarchischen Indizierungsschemata auftreten.

Drei-Wege-Verknüpfungen unter Verwendung einer gemeinsamen Spalte

Stellen Sie sich das Szenario vor, in dem Sie drei haben CSV-Dateien, die jeweils Informationen über dieselbe Gruppe von Personen enthalten. Die erste Spalte in jeder Datei enthält den Namen der Person, während die nachfolgenden Spalten deren Attribute darstellen. Ihr Ziel ist es, diese Dateien in einer einzigen CSV-Datei zusammenzufassen, wobei jede Zeile alle Attribute für jede einzelne Person enthält.

Hierarchische Indizierung und Multi-Index

In Pandas Multi-Index bezieht sich auf ein Indexierungsschema, bei dem jede Indexebene eine andere Spalte darstellt. Beim Zusammenfügen von Datenrahmen wird ein Multiindex verwendet, um die Daten basierend auf gemeinsamen Werten auszurichten. In Ihrem Fall kann die „Join“-Funktion angeben, dass Sie einen Multi-Index benötigen, weil Sie eine einzelne Spalte (Name) verknüpfen, die der Index in jedem Datenrahmen ist.

Datenrahmen ohne zusammenführen Hierarchische Indizierung

In einigen Szenarien ist jedoch möglicherweise keine hierarchische Indizierung erforderlich. Wenn die Datenrahmen eine gemeinsame Spalte haben, können Sie die Lambda-Funktion und das Functools-Paket verwenden, um den Zusammenführungsprozess zu vereinfachen. Hier ist ein Beispiel:

import pandas as pd
import functools as ft

dfs = [df1, df2, df3, ..., dfN]

df_final = ft.reduce(lambda left, right: pd.merge(left, right, on='name'), dfs)

In diesem Code:

  • dfs ist eine Liste mit den Datenrahmen, die zusammengeführt werden sollen.
  • ft.reduce wendet die Lambda-Funktion an zu jedem Datenrahmenpaar und führt sie basierend auf der Spalte „Name“ zusammen.
  • df_final ist das Ergebnis Datenrahmen, der alle Attribute für jede einzelne Person enthält.

Dieser Ansatz eignet sich zum Zusammenführen mehrerer Datenrahmen, ohne dass komplexe hierarchische Indexierungsschemata angegeben werden müssen.

Das obige ist der detaillierte Inhalt vonWie lassen sich mehrere Pandas-DataFrames basierend auf einer gemeinsamen Spalte 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