相关疑难解决方法(0)

使用 pandas 忽略来自 openpyxl 的 UserWarning

我有大量必须加载的 .xlsm 文件。每个 Excel 文件有 6 个工作表。因此,我使用 pandas 打开每个 Excel 文件:

for excel_file in files_list:
    with pd.ExcelFile(excel_file, engine = "openpyxl") as f:
        df1 = pd.read_excel(f, "Sheet1")
        df2 = pd.read_excel(f, "Sheet2")
        df3 = pd.read_excel(f, "Sheet3")
        ...
Run Code Online (Sandbox Code Playgroud)

每次迭代之后,我将 df 传递给其他函数并用它做一些事情。我习惯pd.ExcelFile将文件加载到内存中一次,然后将其分离到 DataFrame 上。

但是,执行此操作时,我收到以下警告:

/opt/anaconda3/lib/python3.8/site-packages/openpyxl/worksheet/_reader.py:300: UserWarning: Data Validation extension is not supported and will be removed
warn(msg)
Run Code Online (Sandbox Code Playgroud)

无论警告如何,信息都会从 Excel 文件中正确加载,并且不会丢失任何数据。将每个 Excel 文件及其所有工作表加载到 df 中大约需要 0.8 秒。如果我使用 pandas 上的默认引擎来加载每个 Excel 文件,警告就会消失,但每个文件所需的时间会增加到 5 甚至 6 秒。

我看到了这篇文章,但没有关于如何删除警告的答案,这正是我所需要的,因为一切正常。

我怎样才能禁用所述用户警告?

python excel pandas openpyxl

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

excel ×1

openpyxl ×1

pandas ×1

python ×1