【问题标题】:problem of saving a large panda data frame to pickle or json?将大熊猫数据框保存到 pickle 或 json 的问题?
【发布时间】:2019-07-22 09:05:05
【问题描述】:

我尝试将大熊猫数据框保存到 JSON 文件

[

我用了这些方法

df.to_pickle("dfSentsOB.pkl")

不幸的是,我遇到了这个错误,有人知道是什么原因吗?

但它说:

no default __reduce__ due to non-trivial __cinit__

也是这样:


df.to_json(orient='table')

它给出了这个错误

Maximum recursion level reached

我只想保存我的数据以便再次加载它,在我看来,问题与数据的大小以及我对 panda 的设置有关,因为在设置我的数据之前已经保存了。

我在我的熊猫数据框中使用了这个设置来查看所有单词:

options = {"compact": True, "bg": "#09a3d5",
           "color": "white", "font": "Source Sans Pro","collapse_phrases":False}
pd.set_option('display.max_colwidth', -1)
pd.set_option('max_colwidth', 260)

如果您知道任何其他方式(除了 csv),请告诉我?

【问题讨论】:

  • 您只是将这些数据读入 DataFrame 并将其保存到 pickle 吗?如果中间发生任何事情,请提及小代码 sn-p。读取和腌制这些数据。
  • 嗨,是的,我读取了一个数据框,我添加了一些列(例如,使用 spacy,我添加标签、实体)并且我想将其保存为 pickle 或 JSON 或任何其他格式,但我尝试过 pickle、JSON 和 hdf 都面临错误。北向特别,我只添加了一些列...
  • 您能尝试将 DF 转换为 Dict 和 pickle/Json 吗?
  • tnx 消息,我试过这种方式import mpu df=df.to_dict() mpu.io.write('dfObs.pickle', df)再次出现同样的错误! no default __reduce__ due to non-trivial __cinit__
  • 嗨 可以上传您的示例数据吗?我没有看到任何特别的问题来腌制这些数据。

标签: json pandas pickle


【解决方案1】:

此代码可以读取您的 csv 并为您提供 JSON 对象。更多details。您可以使用 python csvjson 库,然后您不需要使用任何其他库,例如 pandasmpu

import pandas as pd
csvFile = pd.DataFrame(pd.read_csv("path/csvFile.csv", sep = ",", header = 0, index_col = False))
csvFile.to_json("path/jsonFile.json", orient = "records", date_format = "epoch", double_precision = 10, force_ascii = True, date_unit = "ms", default_handler = None)

【讨论】:

  • 请阅读主要问题,问题不同!我有一个熊猫数据框文件,并在 Spacy 中添加了一些列,现在当我想将其转换为 JSON 或 pickle 时,我遇到了上述主要问题中的错误!我猜是因为 Spacy 使用 cython 酸洗或让 JSON 面临问题。
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 2019-05-21
  • 2014-02-01
  • 2021-11-06
  • 2016-04-01
相关资源
最近更新 更多