问题: pkl 在不同大方读取时经常会因为pandas 版不一致报错,ModuleNotFoundError: No module named ‘pandas.core.indexes.numeric’
解决思路: pkl 格式转换成h6
实现:
我的pkl 保存的是datafram 数据,pandas 本身提供了直接支持将 DataFrame 存储为 HDF5 格式的功能。具体而言,您可以使用 pandas.DataFrame.to_hdf() 方法来实现这一点。
import pickle
import pandas as pd
# 加载 pkl 文件中的 DataFrame
with open('data.pkl', 'rb') as f:
df = pickle.load(f)
# 确保读取的数据是 DataFrame
if isinstance(df, pd.DataFrame):
# 将 DataFrame 转换为 HDF5 文件
df.to_hdf('data.h5', key='df', mode='w') # 'df' 是存储在 HDF5 文件中的键
print("DataFrame 已成功转换为 HDF5 格式。")
else:
print("加载的数据不是 DataFrame 类型。")
# 读取 HDF5 文件中的 DataFrame
df_new = pd.read_hdf('data.h5', key='df')
print("从 HDF5 文件读取的 DataFrame:")
print(df_new)