2

我使用 pandas 数据阅读器包从 fred、yahoo Finance 等网站提取经济时间序列。我从“fred”网站和雅虎财经的历史 sp500 (^GSPC) 中提取了我们的衰退 (USREC) 系列。

美国历史衰退:

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) 将两个框架的日期列设为月开始或月末?

谢谢您的帮助!

4

1 回答 1

2

您可以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')
于 2017-12-23T13:49:19.310 回答