加载Pickle格式Pandas DataFrame时出现numpy._core.numeric模块缺失错误
加载Pickle文件报错:
ModuleNotFoundError: No module named 'numpy._core.numeric' 问题详情
- 保存Pandas DataFrame为Pickle文件的代码:
df.to_pickle('data.pkl') - 尝试两种加载方式均触发相同错误:
方式1:
方式2:with open('path/to/data.pkl', 'rb') as handle: data = pickle.load(handle)data = pd.read_pickle('path/to/data.pkl') - 错误信息:
ModuleNotFoundError: No module named 'numpy._core.numeric' - 环境说明:两台机器均运行pandas 2.2.2和numpy 1.26.4,该版本组合曾解决同类问题,但本次无效。
可行解决方案
1. 重装numpy确保完整性
卸载现有numpy后重新安装,修复可能损坏的文件:
# pip环境 pip uninstall -y numpy pip install numpy==1.26.4 # conda环境 conda remove numpy conda install numpy=1.26.4
2. 验证numpy模块可用性
在Python终端执行以下代码,确认numpy._core.numeric可正常导入:
import numpy print(numpy.__file__) from numpy._core import numeric print(numeric.__file__)
若导入失败,说明numpy安装存在问题,重复步骤1。
3. 换用pyarrow序列化替代Pickle
避免Pickle的版本隐性兼容问题,改用pyarrow引擎保存和加载:
# 保存(需先安装pyarrow:pip install pyarrow) df.to_pickle('data.pkl', protocol=5, storage_options={'engine': 'pyarrow'}) # 加载 data = pd.read_pickle('data.pkl', storage_options={'engine': 'pyarrow'})
4. 清理Python缓存
删除两台机器上的__pycache__文件夹,以及pip/conda的缓存目录,消除旧缓存文件的干扰。
内容的提问来源于stack exchange,提问作者vboettcher
相关产品推荐
相关产品推荐

