如何解决使用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")
...
每次迭代后,我都会将df传递给其他函数,并对其做一些处理。我正在使用pd.ExcelFile
一次将文件加载到内存中,然后在DataFrames上将其分离。
但是,这样做时,我收到以下警告:
/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)
无论警告如何,都将从Excel文件中正确加载信息,并且没有数据丢失。将每个Excel文件及其所有工作表加载到df中大约需要0.8s。如果我在熊猫上使用默认引擎加载每个Excel文件,警告将消失,但是每个文件花费的时间最多为5甚至6秒。
我看到了http://www.cssdesk.com/vPeFm的帖子,但是由于一切正常,所以我没有需要如何删除警告的答案。
如何禁用所说的UserWarning?
解决方法
您可以使用warnings
核心模块执行此操作:
import warnings
warnings.simplefinder('ignore',category=UserWarning)
您还可以通过添加参数module="openpyxl"
来指定要使警告静音的特定模块。
参见What causes "UserWarning: Discarded range with reserved name" - openpyxl——不同的警告,相同的解决方案——所以你在打开书后将警告恢复为默认值,因为可能还有其他你想看到的警告。
import warnings
warnings.simplefilter("ignore")
wb = load_workbook(path)
warnings.simplefilter("default")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。