本地Jupyter环境安装pyfolio后导入报错,求解决方法
解决pyfolio导入时的NaTType错误
这个错误源于原版pyfolio停止维护后,与新版pandas的时间类型处理不兼容。以下是几种可行的解决办法:
安装维护版pyfolio
官方原版pyfolio已多年未更新,社区维护的分支版本修复了这类兼容性问题。先卸载旧版,再安装维护版:pip uninstall -y pyfolio pip install git+https://github.com/quantopian/pyfolio.git@master也可以使用第三方维护的
pyfolio-reloaded包:pip uninstall -y pyfolio pip install pyfolio-reloaded降级pandas到兼容版本
若不想更换pyfolio版本,可将pandas降级到2.0以下的稳定版本,比如:pip install pandas==1.5.3手动修改源码修复
找到本地pyfolio安装目录下的pos.py文件(Windows路径一般为Lib\site-packages\pyfolio\pos.py,Linux/macOS路径一般为/usr/local/lib/pythonX.X/site-packages/pyfolio/pos.py),定位到报错的时间戳转换代码,添加NaT的判断处理:
原代码示例:return int(dt.value // 10**9)修改为:
import pandas as pd if pd.isna(dt): return 0 # 可根据需求设置合适的默认值 return int(dt.value // 10**9)保存文件后重启Jupyter,重新导入pyfolio即可。
内容的提问来源于stack exchange,提问作者Tanul
相关产品推荐
相关产品推荐

