原文中文,约1300字,阅读约需4分钟。
📝
内容提要
在conda环境中,升级yfinance后,talib无法接受DataFrame作为输入,导致错误。降级yfinance至0.2.44后,talib和pandas恢复正常。
🎯
关键要点
-
在conda环境中升级yfinance后,talib无法接受DataFrame作为输入,导致错误。
-
错误信息显示类型不匹配,期望numpy.ndarray,但实际为DataFrame。
-
网络搜索结果误导,建议将DataFrame转换为numpy数组,但问题源于软件包不兼容。
-
通过代码复现问题,发现yfinance的版本影响talib的功能。
-
检查版本差异,发现yfinance 0.2.48与talib和pandas不兼容。
-
确认talib在yfinance 0.2.44版本正常工作,0.2.46及以上版本无法正常工作。
-
解决方案是将yfinance降级到0.2.44,之后talib和pandas恢复正常工作。
-
在GitHub上发布了yfinance的相关问题。
❓
延伸问答
为什么在升级yfinance后talib无法接受DataFrame作为输入?
因为yfinance的版本与talib和pandas不兼容,导致类型不匹配错误。
如何解决talib无法接受DataFrame的问题?
将yfinance降级到0.2.44版本,之后talib和pandas可以正常工作。
错误信息中提到的类型不匹配是什么?
错误信息显示期望类型为numpy.ndarray,但实际传入的是DataFrame。
在检查版本差异时发现了什么?
发现yfinance 0.2.48与talib和pandas不兼容,而0.2.44版本正常工作。
为什么网络搜索结果会误导用户?
因为大多数搜索结果建议将DataFrame转换为numpy数组,而实际问题是软件包不兼容。
如何复现talib无法接受DataFrame的错误?
通过下载数据并调用talib的SMA函数,可以复现该错误。
🏷️