Pandas EOF错误pd.read\U pickle

Pandas EOF错误pd.read\U pickle,pandas,dataframe,pickle,Pandas,Dataframe,Pickle,有一个关于pandas数据帧和pd.read\u pickle()函数的快速问题。基本上,我有一个大而简单的数据帧(333MB)。当我在数据帧上运行pd.read_pickle时,我得到了和EOFError 有办法解决这个问题吗?你知道这可能是什么原因吗 谢谢大家! 我使用以下方法创建泡菜时看到了相同的EOFError: pandas.DataFrame.to_pickle('path.pkl', compression='bz2') 然后试着用: pandas.read_pickle('pa

有一个关于pandas数据帧和pd.read\u pickle()函数的快速问题。基本上,我有一个大而简单的数据帧(333MB)。当我在数据帧上运行pd.read_pickle时,我得到了和EOFError

有办法解决这个问题吗?你知道这可能是什么原因吗


谢谢大家!

我使用以下方法创建泡菜时看到了相同的EOFError:

pandas.DataFrame.to_pickle('path.pkl', compression='bz2')
然后试着用:

pandas.read_pickle('path.pkl')
我通过在读取时提供压缩解决了这个问题:

pandas.read_pickle('path.pkl', compression='bz2')
根据熊猫文件:

compression : {‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None}, default ‘infer’

    string representing the compression to use in the output file. By default, 
    infers from the file extension in specified path.

因此,简单地将路径从'path.pkl'更改为'path.bz2'也解决了问题。

我可以确认以下有价值的评论:


当我遇到这个错误时,我发现这是由于 初始酸洗未正确完成。pickle文件被删除了 已创建,但未正确完成。在我看来,这是唯一的 泡菜中EOFError的可能来源,即泡菜 格式不正确,即未完成

我在酸洗过程中的错误是:

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-40-263240bbee7e> in <module>()
----> 1 main()

<ipython-input-38-9b3c6d782a2a> in main()
     43     with open("/content/drive/MyDrive/{}.file".format(tm.id), "wb") as f:
---> 44         pickle.dump(tm, f, pickle.HIGHEST_PROTOCOL)
     45 
     46     print('Coherence:', get_coherence(tm, token_lists, 'c_v'))

TypeError: can't pickle weakref objects
错误:

---------------------------------------------------------------------------

EOFError                                  Traceback (most recent call last)

<ipython-input-41-460bdd0a2779> in <module>()
----> 1 object = pd.read_pickle(r'/content/drive/MyDrive/TEST_2021_06_01_10_23_02.file')

/usr/local/lib/python3.7/dist-packages/pandas/io/pickle.py in read_pickle(filepath_or_buffer, compression)
    180                 # We want to silence any warnings about, e.g. moved modules.
    181                 warnings.simplefilter("ignore", Warning)
--> 182                 return pickle.load(f)
    183         except excs_to_catch:
    184             # e.g.

EOFError: Ran out of input
---------------------------------------------------------------------------
EOFError回溯(最近一次呼叫最后一次)
在()
---->1 object=pd.read\u pickle(r'/content/drive/MyDrive/TEST\u 2021\u 06\u 01\u 10\u 23\u 02.file')
/读取\u pickle中的usr/local/lib/python3.7/dist-packages/pandas/io/pickle.py(文件路径\u或缓冲区,压缩)
180#我们希望消除任何有关移动模块的警告。
181警告。simplefilter(“忽略”,警告)
-->182回流酸洗负荷(f)
183除excs_to_渔获物外:
184#例如。
EOFError:输入不足

当我遇到此错误时,我发现这是由于初始酸洗未正确完成所致。已创建pickle文件,但未正确完成。在我看来,这是泡菜中EOFError的唯一可能来源,泡菜是畸形的,即未完成。
---------------------------------------------------------------------------

EOFError                                  Traceback (most recent call last)

<ipython-input-41-460bdd0a2779> in <module>()
----> 1 object = pd.read_pickle(r'/content/drive/MyDrive/TEST_2021_06_01_10_23_02.file')

/usr/local/lib/python3.7/dist-packages/pandas/io/pickle.py in read_pickle(filepath_or_buffer, compression)
    180                 # We want to silence any warnings about, e.g. moved modules.
    181                 warnings.simplefilter("ignore", Warning)
--> 182                 return pickle.load(f)
    183         except excs_to_catch:
    184             # e.g.

EOFError: Ran out of input