Ich habe zwei Datenrahmen mit Zeitspalten und Wertspalten, df1
und df2
. df1
ist Form [30000000 x 20]
und df2
ist Form [400 x 20]
. Ich muss eine neue Spalte in df1
erstellen, die einen Wert von df2
aus der Zeile in df2
mit dem nächsten Datum enthält. So mache ich es:Beschleunigen Sie das nächste Datum in Pandas zusammenführen?
df2= df2.sort_values(by='time_col').reset_index(drop=True)
df1['closest'] = np.searchsorted(df2['time_col'].values, df1['time_col'].values)
df1['new_values'] = [df2.loc[x, 'value_col'] for x in sales['closest']]
Das funktioniert, dauert aber enorm lange. Wie in, mehrere Stunden für einen Datenrahmen, der 30 Millionen Zeilen ist.
Gibt es einen effizienteren Weg, dies zu tun?