Как склеить последовательно датафреймы pandas на основе дат?
Есть два фрейма данных: A, B. Хочу получить фрейм C, как последовательную склейку A и B на основе столбца дат, но так, чтобы в случае совпадающих дат в слейку были записаны данные из B.
Подскажите, как это сделать красиво через merge или concate или еще что-то?
Сейчас получаю первый элемент из B, нахожу его номер в A и перезаписываю через append, начиная с номера в A. Громоздко.
Даты в формате dtype: datetime64[ns]
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Отфильтруйте значения в A и склейте с B:
C = pd.concat([A.loc[~A["DT"].isin(B["DT"])], B], ignore_index=True)
PS данный код не тестировался по причине отсутствия в вопросе воспроизводимого примера данных
Автор решения: MaxU
→ Ссылка
Вариант решения, основанный на удалении дубликатов дат:
C = pd.concat([A, B], ignore_index).drop_duplicates(subset="DT", keep="last")
