计算每周增长率时出现错误“不支持 RangeIndex 类型”

Error 'Not supported for type RangeIndex' when calculating weekly grow rate

提问人:tutizeri 提问时间:8/22/2020 最后编辑:tutizeri 更新时间:8/22/2020 访问量:2994

问:

我有一个这样的数据帧 MyDf

MyDate      MyData      
2020-06-02  4588.0
2020-06-03  4555.5
2020-06-04  4604.3
2020-06-05  4634.1
2020-06-06  4617.8  
2020-06-07  4598.9  
2020-06-08  4596.1  
2020-06-09  4607.0  
2020-06-10  4601.6  
2020-06-11  4547.4

我想这样计算 MyData 列的每周增长率:

    #'WeeklyRate'='MyData'/pastweek('MyData')
    from pandas.tseries.offsets import Week
    MyDf['WeeklyRate'] = ((MyDf['MyData'] / MyDf['MyData'].shift(1, freq=Week()).reindex(MyDf['MyDate'].index))
                                           .fillna(value=-1)
                                           .astype(float))
    #ToDo:not sure if .astype(float)

但是当我运行最后一行时,我收到错误“不支持 RangeIndex 类型”。 我做错了什么?

python-3.x pandas 数据帧 索引

评论


答:

0赞 Active_Learner 8/22/2020 #1

我认为如果您将“MyDate”设置为索引,它将:)解决

MyDf = MyDf.set_index("MyDate")
MyDf['WeeklyRate'] = MyDf['MyData'] / MyDf['MyData'].shift(1, freq=Week())
MyDf['WeeklyRate'] = MyDf["WeeklyRate"].fillna(value=-1)

评论

0赞 tutizeri 8/22/2020
我有 MyDf.set_index(“MyDate”) 而不是 MyDf = MyDf.set_index(“MyDate”)