Pandas read_excel returns PendingDeprecationWarning
Pandas read_excel returns PendingDeprecationWarning
我一直在使用 read_excel
函数将 Excel 文件导入为 Pandas 数据框,目前没有明显问题。但是,我刚刚意识到在最近的一些更新之后我收到了以下警告:
/usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:266: PendingDeprecationWarning: This method will be removed in future versions. Use 'tree.iter()' or 'list(tree.iter())' instead.
for elem in self.tree.iter() if Element_has_iter else self.tree.getiterator():
/usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:312: PendingDeprecationWarning: This method will be removed in future versions. Use 'tree.iter()' or 'list(tree.iter())' instead.
for 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
- Python 3.7.6
- Pandas 1.0.0
- xlrd 1.2.0
您的数据导入现在是 "safe"。要消除警告并使您的代码面向未来,请尝试:
pd.read_excel(filename, engine="openpyxl")
或将其放在脚本的开头:
import pandas as pd
pd.set_option("xlsx", "openpyxl")
我一直在使用 read_excel
函数将 Excel 文件导入为 Pandas 数据框,目前没有明显问题。但是,我刚刚意识到在最近的一些更新之后我收到了以下警告:
/usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:266: PendingDeprecationWarning: This method will be removed in future versions. Use 'tree.iter()' or 'list(tree.iter())' instead.
for elem in self.tree.iter() if Element_has_iter else self.tree.getiterator(): /usr/local/lib/python3.7/site-packages/xlrd/xlsx.py:312: PendingDeprecationWarning: This method will be removed in future versions. Use 'tree.iter()' or 'list(tree.iter())' instead.
for 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
- Python 3.7.6
- Pandas 1.0.0
- xlrd 1.2.0
您的数据导入现在是 "safe"。要消除警告并使您的代码面向未来,请尝试:
pd.read_excel(filename, engine="openpyxl")
或将其放在脚本的开头:
import pandas as pd
pd.set_option("xlsx", "openpyxl")