Pandas read_excel 返回 PendingDeprecationWarning

Foa*_*oad 3 python import xlrd pandas openpyxl

我一直在使用该read_excel函数将 Excel 文件作为 Pandas 数据框导入,到目前为止没有明显问题。但是,我刚刚意识到在最近的一些更新之后,我收到了以下警告:

/usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:266: PendingDeprecationWarning: 此方法将在未来版本中删除。使用 'tree.iter()' 或 'list(tree.iter())' 代替。

对于 self.tree.iter() 中的 elem if Element_has_iter else self.tree.getiterator(): /usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:312: PendingDeprecationWarning: 此方法将是在以后的版本中删除。使用 'tree.iter()' 或 'list(tree.iter())' 代替。

对于elem in self.tree.iter() if Element_has_iter else self.tree.getiterator():

在互联网上搜索,似乎xlrd正在被 取代openpyxl。现在我的问题是:

  • 这个警告是什么意思,我应该怎么做?
  • 目前我的数据导入安全吗?我是否必须担心某些东西无法正常工作?
  • 那些tree.iter()list(tree.iter())方法是什么?他们正在取代什么?
  • 是否有另一种方法可以将 Excel 文件作为 Pandas 数据框导入而不会收到此警告?
  • 我应该在某处报告错误或问题吗?在哪里?

我的环境是:

  • macOS 莫哈韦沙漠 10.14.6
  • 蟒蛇 3.7.6
  • 熊猫 1.0.0
  • xlrd 1.2.0

adr*_*adr 7

您的数据导入目前是“安全的”。要摆脱警告并使您的代码面向未来,请尝试:

pd.read_excel(filename, engine="openpyxl")
Run Code Online (Sandbox Code Playgroud)

或将其放在脚本的开头:

import pandas as pd
pd.set_option("xlsx", "openpyxl")
Run Code Online (Sandbox Code Playgroud)

  • Python 唯一不变的就是变化。`xlrd` 可能是个例外! (4认同)