将pandas数据框架中的日数据转换成月数据[英] Convert daily data in pandas dataframe to monthly data

本文是小编为大家收集整理的关于将pandas数据框架中的日数据转换成月数据的处理方法,想解了将pandas数据框架中的日数据转换成月数据的问题怎么解决?将pandas数据框架中的日数据转换成月数据问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的数据框中有每日股票数据:

       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)

但我收到与上述相同的错误消息.非常感谢您的帮助.

推荐答案

您的索引不是 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

本文地址:https://www.itbaoku.cn/post/1727775.html