Я хочу объединить отдельный фрейм данных (df2) с основным фреймом данных (df1), но если для данной строки даты в df1 не существуют в df2, то ищите недавнюю дату до базовой даты вdf1.
Я пытался использовать pd.merge, но он удалял строки с несопоставленными датами и сохранял только те строки, которые совпадают в обеих df.
df1 = [['2007-01-01','A'],
['2007-01-02','B'],
['2007-01-03','C'],
['2007-01-04','B'],
['2007-01-06','C']]
df2 = [['2007-01-01','B',3],
['2007-01-02','A',4],
['2007-01-03','B',5],
['2007-01-06','C',3]]
df1 = pd.DataFrame(df1)
df2 = pd.DataFrame(df2)
df1[0] = pd.to_datetime(df1[0])
df2[0] = pd.to_datetime(df2[0])
Current df1|pd.merge ():
0 1 2
0 2007-01-06 C 3
Получает только точную дату между обоими df, не учитывает значения из последних дат.
Ожидаемый df1:
0 1 2
0 2007-01-01 A NaN
1 2007-01-02 B 3
2 2007-01-03 C NaN
3 2007-01-04 B 3
4 2007-01-06 C 3
Получение NaN, потому что в df2 данные не существуют ни в эту дату, ни в эту дату.Для строки индекса 1 он получает данные за день до этого, а для строки индекса 4 - данные точно в тот же день.