You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pd.read_pickle读取pkl文件时仅返回第一行的问题咨询

问题原因

你当前读取到的结果是一维numpy数组,仅包含列名信息,说明目标.pkl文件当前存储的内容就只有列名数组,并非完整的表格数据。大概率是你当初生成该pkl文件时,误将列名对象传入了to_pickle接口,而非完整的DataFrame对象。

解决步骤

  • 第一步:先确认当前pkl的存储内容属性,运行如下代码:
import pandas as pd

data = pd.read_pickle("./Process.pkl")
print(type(data))
print(data.shape)

如果输出为<class 'numpy.ndarray'>且shape为(7,),即可确认该pkl仅存储了列名数据。

  • 第二步:修正pkl生成逻辑,存储完整DataFrame
    回到生成该pkl文件的代码环节,确认存储的是完整的表格对象,正确存储参考代码如下:
import pandas as pd

# 你的完整业务数据生成逻辑
full_df = pd.DataFrame(
    你的原始数据源,
    columns=['Var1', 'Var2', 'Vartestsmoo', 'Var3', 'Var4', 'Var5', 'Var6']
)
# 存储完整DataFrame到pkl
full_df.to_pickle("./Process.pkl")

重新存储后再用pd.read_pickle读取即可拿到完整表格内容。

  • 第三步:无生成代码时的全量读取方案
    如果你找不到该pkl的生成逻辑,可以用pickle原生库尝试读取文件中可能存在的其他序列化对象:
import pickle

with open("./Process.pkl", "rb") as f:
    while True:
        try:
            obj = pickle.load(f)
            print(obj)
            print("-"*60)
        except EOFError:
            break

如果该pkl序列化时写入了多个对象,该代码会输出所有存储内容。


内容的提问来源于stack exchange,提问作者DobbyL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 20:51:01