在 DatetimeIndex 上合并两个数据帧

时间:2021-03-31 11:00:56

标签: pandas merge datetimeindex

到目前为止,我还没有遇到过此类 DataFrame 操作的问题。

我想要实现的是获得一个 DataFrame,其中包含几年内的每日数据和过去 5 天的每小时数据。我的代码(完全运行):

import yfinance as yf
import pandas as pd

ticker = yf.Ticker('TSLA')
fine = ticker.history(period='5d', interval='60m')
fine.index = fine.index.tz_convert('UTC').tz_localize(None)
print(fine)
coarse_end_date = fine.index[0].date()
coarse = ticker.history(start='2019-01-01', end=coarse_end_date, interval='1d')
print(coarse)
yfdata = pd.merge(coarse, fine, how='inner', left_index=True, right_index=True)
print(yfdata)

当然,我正在尝试合并两个索引(首先从 fine 索引中删除 tz 数据)。我得到的结果是一个空的 DataFrame:

Empty DataFrame
Columns: [Open_x, High_x, Low_x, Close_x, Volume_x, Dividends_x, Stock Splits_x, Open_y, High_y, Low_y, Close_y, Volume_y, Dividends_y, Stock Splits_y]
Index: []

如您所见,合并操作将相似的 DataFrame 列拆分为 _x 和 _y 列,然后当然没有共同值,因此 DataFrame 为空。

我试过为粗略日期分配时间、重置索引和合并日期列、重命名索引和其他绝望的东西,但没有任何效果。

也许有人知道发生了什么,我非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我尝试了一些更绝望的东西,显然,我需要指定要合并的列。另外,这里需要连接方法。

yfdata = pd.merge(coarse, fine, how='outer', on=coarse.columns.to_list(), left_index=True, right_index=True)

相关问题