【问题标题】:Pandas: how to make openpyxl the default engine for all read_excel operations?Pandas:如何使 openpyxl 成为所有 read_excel 操作的默认引擎?
【发布时间】:2021-06-19 04:49:27
【问题描述】:

由于 read_exceldefault engine xlrd has been deprecated 在新的 pandas 版本中,我如何使 openpyxl 成为我所有 pd.read_excel 调用的默认引擎?

现在,如果我更新 pandas,我必须将参数 engine="openpyxl" 放入我所有的 pd.read_excel 调用中。看起来没必要。

【问题讨论】:

  • 来自docs:否则如果path_or_buffer是xls格式,则使用xlrd,否则如果安装了openpyxl,则使用openpyxl

标签: excel pandas


【解决方案1】:

这很容易!您可以通过转到环境的 pandas 文件夹中的 _base.py 来更改该方法的默认值。您可以通过以下方式找到它:

import pandas as pd
print(pd.__file__)

进入 pandas 文件夹后,进入文件夹 io > excel > _base.py

打开文件并找到

def read_excel(...)

您将找到引擎的默认值。将其更改为“openpyxl”

如果您使用的是 vscode,只需右键单击方法 .read_excel 的实例并按 F12,或转到定义并立即更改。

【讨论】:

    【解决方案2】:

    如果您使用的是 pandas 1.1.5 版或其他新版本,这可能会有所帮助:

    运行 print(pd.__file__) 以查看您的 pandas 库的存储位置。通常,文件路径将以“Lib\site-packages\pandas”结尾。然后,打开文件夹“io”和文件夹“excel”。你会在那里找到“_base.py”文件。

    查找def __init__。您将在那里找到读取 Excel 文件的默认引擎。它应该在第 849 行。我应该阅读:

    if engine is None:
        engine = "openpyxl"
    

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 2011-07-04
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2013-09-25
      • 2020-02-16
      • 2019-12-30
      • 1970-01-01
      相关资源
      最近更新 更多