У меня есть два кадра данных со столбцами времени и столбцами значений, df1
и df2
. df1
- форма [30000000 x 20]
и df2
- форма [400 x 20]
. Мне нужно создать новый столбец в df1
, который содержит значение от df2
от строки в df2
с самой близкой датой. Вот как я это делаю:Ускорение ближайшей даты слияния в Пандах?
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']]
Это работает, но занимает очень много времени. Как и в, несколько часов для кадра данных, который составляет 30 миллионов строк.
Есть ли более эффективный способ сделать это?