UserWarning: The installed version of numexpr 2.4.3 is not supported in pandas and will be not be us...

本文介绍了解决因Numexpr版本过低而导致pandas无法正常使用的问题。通过升级Numexpr到支持的版本,可以确保pandas正常运行。文中提供了具体的命令行操作步骤。
问题:
/usr/local/lib/python3.5/dist-packages/pandas/core/computation/__init__.py:18: UserWarning: The installed version of numexpr 2.4.3 is not supported in pandas and will be not be used The minimum supported version is 2.4.6 ver=ver, min_ver=_MIN_NUMEXPR_VERSION), UserWarning)

解决:

pip install --user --upgrade Numexpr

 

本来使用: pip3.5 install -U Numexpr

报错:

使用:

pip3.5 install --user --upgrade Numexpr

即可

转载于:https://www.cnblogs.com/hozhangel/p/9447858.html

<think> 我们注意到用户提供的代码中使用了openpyxl,并且在保存时出现了关于“Data Validation extension”的警告。这个警告通常是因为openpyxl不完全支持Excel的数据验证功能,当加载包含数据验证的工作簿时,openpyxl会移除这些数据验证并发出警告。 要处理这个警告,我们可以采取以下两种方法之一: 1. 忽略该警告:如果用户不关心数据验证规则被移除,可以忽略此警告。 2. 在加载工作簿时设置`data_only=True`参数:这个参数会让openpyxl忽略公式和验证,只加载值。但是注意,这也会导致公式被计算后的值替换。 然而,在对比工具中,我们通常只关心单元格的值,因此可以设置`data_only=True`来避免这个警告。但是,在原始代码中,我们并没有使用这个参数。 修改代码:在加载工作簿时添加`data_only=True`,这样不会加载数据验证规则,从而避免警告。 但是注意:如果用户需要保留公式,则不能使用`data_only=True`,因为这样会丢失公式只保留计算结果。在对比工具中,我们通常比较的是值,所以使用`data_only=True`是安全的。 另外,也可以使用`warnings`模块来忽略这个警告。 根据需求,我们可以选择: 方案一(推荐):在加载工作簿时使用`data_only=True`,因为对比工具只关心值。 方案二:忽略特定警告。 我们选择方案一,修改两处加载工作簿的代码: 将: main_wb = load_workbook(self.main_file) check_wb = load_workbook(self.check_file) 修改为: main_wb = load_workbook(self.main_file, data_only=True) check_wb = load_workbook(self.check_file, data_only=True) 这样就不会加载数据验证规则,从而避免警告。 但是,用户需要注意,这样加载后,如果有公式单元格,将只显示公式计算的结果(即最后一次保存时计算的结果)。 另外,如果用户希望保留数据验证,那么可能需要考虑使用其他库(如xlwings,但需要安装Excel环境)或者接受警告。但根据问题描述,我们只需要处理警告,所以采用上述方案。 因此,我们修改`compare_tables`方法中的两行代码。 修改后的代码片段如下: ```python def compare_tables(self): # ... [其他代码不变] ... try: # 加载工作簿 - 修改为data_only=True以忽略数据验证 main_wb = load_workbook(self.main_file, data_only=True) check_wb = load_workbook(self.check_file, data_only=True) # ... [其余代码不变] ... ``` 这样修改后,在加载工作簿时,openpyxl将不会加载数据验证规则,因此不会出现该警告。 注意:这个警告是在使用`load_workbook`时出现的,所以这样修改应该可以避免警告。 但是,如果用户需要处理包含公式且需要实时计算的情况,则不能使用`data_only=True`,此时可以考虑方案二:忽略警告。 方案二代码(在程序开始处添加): ```python import warnings warnings.filterwarnings(&#39;ignore&#39;, category=UserWarning, message=&#39;Data Validation extension is not supported&#39;) ``` 不过,根据题目要求,我们只需要处理保存时的警告,并且题目没有说明需要公式,所以采用方案一。 我们按照方案一修改即可。 另外,代码中有一行注释掉的副表获取方式,现在使用的是通过名称获取(`check_wb[&#39;check&#39;]`),这可能是副表名称,所以保留。 最后,将修改后的完整函数代码段展示在回答中是不现实的,因此我们只展示修改的关键部分。 由于用户要求必须输出3-5个相关问题,我们在最后提出相关问题。 §§相关问题§§ 1. 在处理Excel文件时,如何避免因不支持的扩展功能(如数据验证)导致的警告? 2. 对比包含公式的Excel文件时,如何确保对比的是公式本身而非计算结果? 3. 除了openpyxl,还有哪些Python库可以更好地支持Excel的数据验证功能? 4. 如果需要在对比后保留原文件的数据验证规则,应该如何处理? 5. 如何为Excel对比工具添加忽略警告的选项? </think> ### 关于 Excel Data Validation 警告的处理 您遇到的警告 `UserWarning: Data Validation extension is not supported and will be removed` 是由于 openpyxl 库不完全支持 Excel 的数据验证功能导致的。当加载包含数据验证规则的 Excel 文件时,openpyxl 会移除这些规则并发出警告。 #### 解决方案: ```python def compare_tables(self): try: # 添加 ignore_warnings 参数解决数据验证警告 main_wb = load_workbook(self.main_file, data_only=True, keep_vba=False) check_wb = load_workbook(self.check_file, data_only=True, keep_vba=False) # 或者使用 warnings 模块过滤特定警告 import warnings from openpyxl.utils.exceptions import DataValidationWarning warnings.simplefilter("ignore", category=DataValidationWarning) # ... [其余代码不变] ... ``` #### 关键参数说明: 1. `data_only=True`:只加载计算后的值,忽略公式 2. `keep_vba=False`:不加载VBA宏 3. 添加警告过滤:忽略特定类型的DataValidation警告 #### 备选方案: 1. 使用其他库如 `xlwings` 或 `pandas`: ```python import pandas as pd main_df = pd.read_excel(self.main_file, engine=&#39;openpyxl&#39;) ``` 2. 完全移除数据验证规则: ```python for sheet in main_wb: sheet.data_validations = None ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值