【问题标题】:Pickling a DataFrame腌制数据框
【发布时间】:2014-05-30 09:34:29
【问题描述】:

我正在尝试腌制一个 DataFrame

import pandas as pd
from pandas import DataFrame
data = pd.read_table('Purchases.tsv',index_col='coreuserid')
data.to_pickle('Purchases.pkl')

我已经在“数据”上运行了一段时间并且没有遇到任何问题,所以我知道这不是数据损坏问题。我正在考虑可能的语法,但我尝试了许多变体。我犹豫是否给出整个错误消息,但它以:

\pickle.pyc in to_pickle(obj, path)
 13     """
 14     with open(path, 'wb') as f:
 15         pkl.dump(obj, f, protocol=pkl.HIGHEST_PROTOCOL)

 SystemError: error return without exception set 

Purchase.pkl 文件已创建,但如果我调用

data = pd.read_pickle('Purchases.pkl')

我收到 EOFError。我正在使用 Canopy 1.4 所以 pandas 0.13.1 应该足够新以具有此功能。

【问题讨论】:

  • 数据框有多大?在此处查看其他报告:github.com/pydata/pandas/issues/3699
  • 中等:data.shape = (21324932, 7)
  • 它看起来像一个已知的错误:bugs.python.org/issue11564
  • 您是否尝试过 hdf5 类型的方法 - 如果它主要是数字,那么对于如此大的数据框可能会更幸运。

标签: python pandas pickle canopy


【解决方案1】:

快进几年,现在它运行良好。谢谢熊猫;)

【讨论】:

    【解决方案2】:

    您可以尝试从您的 DataFrame 创建一个类并在之后腌制它。

    这可以帮助您: Pass pandas dataframe into class

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2020-05-03
      • 1970-01-01
      相关资源
      最近更新 更多