yfinance 下载 Yahoo 财务数据报错:TypeError: read_csv() on_bad_lines
2024-03-06 15:54:29
使用 yfinance.download() 获取 Yahoo 财务数据时遇到 TypeError: read_csv() got an unexpected keyword argument 'on_bad_lines' 错误
在使用 yfinance
库下载 Yahoo 财务历史数据时,你可能会遇到 TypeError: read_csv() got an unexpected keyword argument 'on_bad_lines'
错误。这个错误是由 yfinance
库在下载数据时使用 pandas.read_csv()
函数引起的。
错误的原因
on_bad_lines
参数不再是 pandas.read_csv()
函数的有效参数。在较新的 pandas
版本中,这个参数已被弃用。因此,当 yfinance
使用较旧版本的 pandas
时,就会出现这个错误。
解决方案
要解决这个错误,有以下几种方法:
1. 更新 pandas 库
确保你使用的是 pandas
库的最新版本。你可以使用以下命令进行更新:
pip install --upgrade pandas
2. 更新 yfinance 库
同样,确保你使用的是 yfinance
库的最新版本。使用以下命令进行更新:
pip install --upgrade yfinance
3. 使用旧版本的 pandas
如果你无法更新 pandas
到最新版本,可以使用旧版本的 pandas
。你可以使用以下命令安装旧版本:
pip install pandas==1.5.3
附加提示
-
重新安装
yfinance
库时,可以使用--no-cache-dir
标志来防止使用缓存的安装文件。 -
如果以上方法均无法解决问题,请尝试清除
yfinance
库的缓存。这可以通过删除以下目录来实现:~/.cache/yfinance
常见问题解答
1. 为什么会发生这个错误?
这个错误是由 yfinance
库使用较旧版本的 pandas
时引起的,而较新版本的 pandas
中不再支持 on_bad_lines
参数。
2. 如何更新 pandas 和 yfinance 库?
你可以使用 pip install --upgrade pandas
和 pip install --upgrade yfinance
命令更新这两个库。
3. 使用旧版本 pandas 的潜在风险是什么?
使用旧版本 pandas
可能存在安全性和兼容性问题,因为它可能缺少最新的功能和安全补丁。
4. 清除 yfinance 缓存后会发生什么?
清除 yfinance 缓存不会删除任何下载的数据或设置。它只会清除库在运行时使用的临时文件和缓存。
5. 如果我仍然遇到错误怎么办?
如果你尝试了所有这些方法但仍然遇到错误,建议你创建一个 GitHub issue 或在 yfinance 论坛上寻求帮助。