我试图在我自己的返回数据集pf.create_full_tear_sheet(df_returns) (熊猫数据)上运行Pyfolio的df_returns函数,如下所示:

但是,我得到了错误:
TypeError: Addition/subtraction of integers and integer-arrays with DatetimeArray is no longer supported. Instead of adding/subtracting `n`, use `n * obj.freq`我怀疑日期格式可能是问题所在,因此我检查了数据类型:
In: df_returns['Date'].dtype
Out: dtype('<M8[ns]')
In: df_returns['% Returns'].dtype
Out: dtype('float64')难道我没有在pf.create_full_tear_sheet(df_returns)中指定导致错误的基准数据吗?
发布于 2020-04-08 16:32:10
我不能重述你的错误。这可能与您正在传递完整数据的事实有关:根据Pyfolio API参考,returns参数必须作为pd.Series传递。
如果我只传递Returns %列,它就会给出适当的输出。尝试:
df_returns = df_returns.set_index('Date')
pf.create_full_tear_sheet(df_returns['% Returns'])值得注意的是,我发现包依赖关系非常过时:
zipline,这会将pandas降级为0.22.0。matplotlib自3.2.x以来抛出了许多不推荐的警告,因此我将其降级为3.1.x。.argmin()并引发警告。这个问题自2019年-05-24年间就已经为人所知。。这使我相信pyfolio可能对您的环境非常敏感。您是使用文档中的虚拟环境指令安装它的吗?
https://stackoverflow.com/questions/60935336
复制相似问题