我的数据框中有每日库存数据:
Date AAPL NFLX INTC
0 2008-01-02 27.834286 3.764286 25.350000
1 2008-01-03 27.847143 3.724286 24.670000
2 2008-01-04 25.721428 3.515714 22.670000
3 2008-01-07 25.377142 3.554286 22.879999
4 2008-01-08 24.464285 3.328571 22.260000
我想使用上述df中每个月的最后一天来计算月收益。我猜(在谷歌搜索之后),重新采样是选择每月最后一个交易日的最佳方法。但这似乎不起作用:
df.set_index('Date')
m1= df.resample('M')
print(m1)
得到此错误:
TypeError:仅对DatetimeIndex,TimedeltaIndex或PeriodIndex有效,但具有“ Index”的实例
所以我认为这意味着set_index无法正常工作?
我也尝试过:
df= df.reset_index().set_index('Date')
m1= df.resample('M')
print(m1)
但是我收到与上面相同的错误消息。非常感谢您的帮助。
答案 0 :(得分:1)
您的索引不是DatetimeIndex。但是您可以将其设为DatetimeIndex:
df.set_index('Date', inplace=True)
df.index = pd.to_datetime(df.index)
df.resample('1M').mean()
# AAPL NFLX INTC
#Date
#2008-01-31 26.248857 3.577429 23.566