我使用 pandas 数据读取器包从 Fred、雅虎财经等网站提取经济时间序列。我从“fred”网站中提取了美国经济衰退 (USREC) 系列,并从雅虎财经中提取了历史 sp500 (^GSPC)。
美国历史性衰退:
web.DataReader("USREC", "fred", start, end)
输出:
2017-08-01 0
2017-09-01 0
2017-10-01 0
2017-11-01 0
标准普尔 500 指数返回
web.DataReader("^GSPC",'yahoo',start,end)['Close'].to_frame().resample('M').mean().round()
输出:
2017-08-31 2456.0
2017-09-30 2493.0
2017-10-31 2557.0
2017-11-30 2594.0
我想合并两个数据框,但一个具有该月的开始日期,另一个具有该月的结束日期。如何制作 a) 日期列 yyyy-mm b) 使两个框架的日期列为月开始或月结束?
感谢您的帮助!
最佳答案
您可以在月初使用 MS
重新采样:
web.DataReader("^GSPC",'yahoo',start,end)['Close'].to_frame().resample('MS').mean().round()
或者可以使用 to_period
表示月份PeriodIndex
:
df1 = df1.to_period('M')
df2 = df2.to_period('M')
print (df1)
Close
2017-08 0
2017-09 0
2017-10 0
2017-11 0
print (df2)
Close
2017-08 2456.0
2017-09 2493.0
2017-10 2557.0
2017-11 2594.0
print (df1.index)
PeriodIndex(['2017-08', '2017-09', '2017-10', '2017-11'], dtype='period[M]', freq='M')
print (df2.index)
PeriodIndex(['2017-08', '2017-09', '2017-10', '2017-11'], dtype='period[M]', freq='M')
关于python - Pandas 数据读取器 : normalizing dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47952901/