Я хочу объединить два DataFrames:
df1:
dt_object Lng
1 2020-01-01 00:00:00 1.57423
2 2020-01-01 01:00:00 1.57444
3 2020-01-01 02:00:00 1.57465
4 2020-01-01 03:00:00 1.57486
df2:
dt_object Price
0 2020-01-03 10:00:00 256.086667
1 2020-01-03 11:00:00 256.526667
2 2020-01-03 12:00:00 257.386667
3 2020-01-03 13:00:00 256.703333
4 2020-01-03 14:00:00 255.320000
dt_object в обоих случаях имеет тип datetime64
df1 никогда не имеет пропущенных строк. Таким образом, у него 24 часа в сутки.
Но в df2 ЕСТЬ недостающие строки.
Когда я их объединяю, возникает несоответствие.
df = pd.merge(df1, df2, on = 'dt_object')
Объединенный df:
dt_object Lng Price
0 2020-04-01 10:00:00 1.59270 183.996667
1 2020-04-01 11:00:00 1.59294 184.466667
2 2020-04-01 12:00:00 1.59319 184.810000
3 2020-04-01 13:00:00 1.59343 184.386667
4 2020-04-01 14:00:00 1.59367 184.533333
Проблемы:
- Lng 1.59270 находится не в том месте. Он прилетел 2020-04-01 10: 00: 00 от 04.01.2020 10: 00: 00 (месяц и дата перепутались). Но цена 183,996667 находится в нужном месте. Итак, ВСЕ Lng вылетели с неправильной даты с испорченной датой / месяцем.
- Цены в df2 начинаются с января 2020-01-03 10:00:00, но объединенный фрейм данных начинается с апреля 2020-04-01
Когда я увидел эту проблему, я добавил для обоих фреймов данных:
df1['dt_object'] = pd.to_datetime(df1['dt_object'], format='%Y-%m-%d %H:%M:%S')
df2['dt_object'] = pd.to_datetime(df2['dt_object'], format='%Y-%m-%d %H:%M:%S')
, но это не помогло. Ничего не изменилось. Внутри dt_object есть странная ошибка с месяцем / датой, но я не могу ее обнаружить. Помогите исправить, пожалуйста!