2016-12-14 6 views
0

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?

Antwort

Verwandte Themen