返回

yfinance 下载 Yahoo 财务数据报错:TypeError: read_csv() on_bad_lines

python

使用 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 pandaspip install --upgrade yfinance 命令更新这两个库。

3. 使用旧版本 pandas 的潜在风险是什么?

使用旧版本 pandas 可能存在安全性和兼容性问题,因为它可能缺少最新的功能和安全补丁。

4. 清除 yfinance 缓存后会发生什么?

清除 yfinance 缓存不会删除任何下载的数据或设置。它只会清除库在运行时使用的临时文件和缓存。

5. 如果我仍然遇到错误怎么办?

如果你尝试了所有这些方法但仍然遇到错误,建议你创建一个 GitHub issue 或在 yfinance 论坛上寻求帮助。