3

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

在此处输入图像描述

但是我收到了错误:

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)导致错误的基准数据吗?

4

1 回答 1

2

我无法真正重现您的错误。这可能与您传递完整数据帧的事实有关:根据Pyfolio 的 API 参考returns参数必须作为pd.Series.

如果我只通过Returns %列,它会给出正确的输出。尝试:

df_returns = df_returns.set_index('Date')
pf.create_full_tear_sheet(df_returns['% Returns'])

值得注意的是,我发现包依赖项已经过时了:

这让我相信pyfolio可以对你的环境非常敏感。您是否使用文档中的虚拟环境说明安装它?

于 2020-04-08T16:32:10.740 回答