pandas.merge: Spiel das nächste mal Stempel >= die Serie von Zeitstempeln
Habe ich zwei dataframes, die beide einen sehr unregelmäßigen Abständen, Millisekunde Auflösung timestamp-Spalte. Mein Ziel hier ist es, dass die Zeilen so, dass bei jeder passenden Zeile, 1) der erste Zeitstempel ist immer kleiner oder gleich der zweiten Zeitstempels, und 2) die übereinstimmenden Zeitstempeln sind die nächsten für alle Paare von Zeitstempeln befriedigend 1).
Gibt es eine Möglichkeit, dies zu tun mit pandas.merge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
merge()
nicht tun können diese Art der Verknüpfung, aber Sie könnensearchsorted()
:Erzeugen einige zufällige Zeitstempel:
t1
,t2
gibt es in aufsteigender Reihenfolge:call
searchsorted()
zu finden-index int1
für jeden Wert int2
:hier ist die Ausgabe:
Anzeigen dieses Ergebnis durch Graphen:
Ausgabe:
Die grünen Linien sind
t1
, Blaue Linien sindt2
, rote Linien ausgewählt sind aust1
für jedent2
.Pandas hat jetzt die Funktion
merge_asof
, tut genau das, was beschrieben wurde, ist die akzeptierte Antwort.Hier ist eine einfachere und allgemeinere Methode.
Ich habe einen anderen Weg als HYRY:
Kann All das geschrieben werden, in wenigen Zeilen: