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

Wie lassen sich Pandas-DataFrames basierend auf einer Bereichsbedingung effizient zusammenführen?

Susan Sarandon
Freigeben: 2024-10-29 11:06:30
Original
434 Leute haben es durchsucht

How to Efficiently Merge Pandas DataFrames Based on a Range Condition?

Nach Bereich in Pandas verbinden

Bei der Datenbearbeitung mit Pandas besteht eine häufige Aufgabe darin, zwei Datenrahmen basierend auf einer Bereichsbedingung zusammenzuführen. Dazu gehört die Identifizierung der Zeilen in Datenrahmen A, in denen die Werte in einer bestimmten Spalte innerhalb eines angegebenen Bereichs in Datenrahmen B liegen.

Ein Ansatz für diese Aufgabe besteht darin, in beiden Datenrahmen eine Dummy-Spalte zu erstellen und einen Cross-Join mit durchzuführen diese Dummy-Spalte und filtert dann die Zeilen heraus, die die Bereichskriterien nicht erfüllen. Diese Methode kann jedoch für große Datensätze ineffizient sein.

Eine alternative Lösung ist die Verwendung von Numpy Broadcasting, einer leistungsstarken Technik zur Durchführung elementweiser Operationen an Arrays. Durch Konvertieren der relevanten Spalten in den Datenrahmen A und B in Numpy-Arrays können wir logische Operatoren anwenden, um A_value mit den B_low- und B_high-Werten zu vergleichen und die Zeilen zu identifizieren, die die Bereichsbedingung erfüllen.

import numpy as np

# Convert to numpy arrays
a = A.A_value.values
bh = B.B_high.values
bl = B.B_low.values

# Find intersecting indices
i, j = np.where((a[:, None] >= bl) & (a[:, None] <= bh))

# Merge and align dataframes
result = pd.concat([
    A.loc[i, :].reset_index(drop=True),
    B.loc[j, :].reset_index(drop=True)
], axis=1)

print(result)
Nach dem Login kopieren

Diese Methode bietet Höhere Effizienz bei großen Datensätzen im Vergleich zum Dummy-Spalten-Ansatz. Darüber hinaus ermöglicht es die einfache Implementierung von Links- oder Rechts-Joins durch Anpassen der Logik im Numpy-Broadcasting-Schritt.

Das obige ist der detaillierte Inhalt vonWie lassen sich Pandas-DataFrames basierend auf einer Bereichsbedingung effizient zusammenführen?. 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