Я хотел бы объединить 2 кадра данных с одинаковым количеством строк независимо от отметки времени каждой строки.
Я просто хочу данные рядом (они уже отсортированы).
Я пытался избавиться от отметок времени, а затем объединить кадры данных, но безуспешно.
Вот 1-й кадр данных (как показано в терминале):
Open High
Timestamp
2019-04-11 04:00:00+00:00 5143.50 5191.64
2019-04-11 05:00:00+00:00 5180.18 5183.11
А вот и второй кадр данных:
Open_2h High_2h
Timestamp
2019-04-11 04:00:00+00:00 5100 5300
2019-04-11 06:00:00+00:00 5200 5400
Вот результат, который я хотел бы получить:
Open High Open_2h High_2h
Timestamp
2019-04-11 04:00:00+00:00 5143.50 5191.64 5100 5300
2019-04-11 05:00:00+00:00 5180.18 5183.11 5200 5400
Итак, я попробовал следующий код:
result = pd.DataFrame()
df1.reset_index()
df2.reset_index()
result = pd.concat([df1, df2], axis=1 , sort=False)
Я тоже пробовал:
result = pd.DataFrame()
df1.reset_index()
df2.reset_index()
result = df1.join(df2)
Я также пытался заранее форсировать новый индекс в df1 & df2:
indexlist = list(range(0,2))
df1.loc[:,'Index'] = indexlist
df1.set_index('Index')
df2.loc[:,'Index'] = indexlist
df2.set_index('Index')
Но данные временной метки остаются индексом, на который опирается панда для операции «соединение» или «объединение».
И с любым из приведенного выше кода, вот что я получаю:
Open High Open_2h High_2h
Timestamp
2019-04-11 04:00:00+00:00 5143.50 5191.64 5100 5300
2019-04-11 05:00:00+00:00 5180.18 5183.11 NaN NaN
2019-04-11 06:00:00+00:00 NaN NaN 5200 5400
Я попробовал решение merge_asof, указанное ниже, но со следующими данными появляются повторяющиеся строки:
df1
Open High
Timestamp
2019-04-11 03:00:00+00:00 3000 3100
2019-04-11 04:00:00+00:00 4000 4100
2019-04-11 05:00:00+00:00 5000 5100
df2
Open_2h High_2h
Timestamp
2019-04-11 00:00:00+00:00 0500 0600
2019-04-11 02:00:00+00:00 2500 2600
2019-04-11 04:00:00+00:00 4500 4600
Я получаю:
Open High Open_2h High_2h
Timestamp
2019-04-11 03:00:00+00:00 3000 3100 2500 2600
2019-04-11 04:00:00+00:00 4000 4100 4500 4600
2019-04-11 05:00:00+00:00 5000 5100 4500 4600
Временная метка все еще синхронизируется между двумя кадрами данных, и когда в df2 не найдена соответствующая временная метка, копируются предыдущие значения.
Может ли кто-нибудь помочь мне избавиться от метки времени этих фреймов данных для выполнения такой конкатенации?
Заранее благодарю за помощь.
С уважением,
Pierre