Effektivste Methode für bereichsbasierte Verknüpfungen in Pandas
Bei der Arbeit mit Pandas-Datenrahmen besteht die Notwendigkeit, bereichsbasierte Verknüpfungen (Zusammenführungen) durchzuführen ) ist eine häufige Aufgabe. Um dieses Problem anzugehen, wurden verschiedene Ansätze vorgeschlagen, von denen jeder seine eigenen Vor- und Nachteile hat. Die eleganteste und effizienteste Methode ist jedoch die Verwendung von Numpy Broadcasting.
Betrachten Sie die Datenrahmen A und B, bei denen unser Ziel darin besteht, sie unter der Bedingung, dass A_value in den durch B_low und B_high angegebenen Bereich fällt, inner zu verbinden.
Um dies zu erreichen, nutzen wir die Leistungsfähigkeit von Numpy, um zu prüfen, ob jedes Element in A_value die Bereichskriterien erfüllt. Dies wird erreicht, indem die Werte von A_value mit den unteren und oberen Grenzen (B_low und B_high) der Bereiche in B verglichen werden.
Das Ergebnis sind zwei Arrays, i und j, in denen i die Indizes der übereinstimmenden A_value enthält Elemente in A und j enthält die entsprechenden Indizes in B. Durch die Kombination dieser Indizes können wir die gewünschten Zeilen aus beiden Datenrahmen abrufen und sie verketten, um den zusammengeführten Datenrahmen zu erstellen.
Hier ist der aktualisierte Code für diesen Ansatz :
<code class="python">import numpy as np a = A.A_value.values bh = B.B_high.values bl = B.B_low.values i, j = np.where((a[:, None] >= bl) & (a[:, None] <= bh)) pd.concat([ A.loc[i, :].reset_index(drop=True), B.loc[j, :].reset_index(drop=True) ], axis=1)</code>
Diese Methode bietet nicht nur eine effiziente Lösung, sondern verarbeitet auch innere und linke Verknüpfungen ordnungsgemäß. Durch Anpassen der Parameter können wir es problemlos an verschiedene Beitrittsszenarien anpassen.
Das obige ist der detaillierte Inhalt vonWie kann man mithilfe von Numpy Broadcasting bereichsbasierte Verknüpfungen in Pandas effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!