【问题标题】:How to store `pandas.DataFrame` in a PANDAS-LOADABLE binary format other than `pickle`如何以“pickle”以外的 PANDAS-LOADABLE 二进制格式存储“pandas.DataFrame”
【发布时间】:2017-11-13 14:55:35
【问题描述】:

我在保存 pandas.DataFrame(1 440 000 000 行)时遇到问题。

据我在 API 中看到的,存储(然后加载)数组的唯一可用选项是 CSV 或 pickle。

以 pickle 格式保存会以一个神秘的异常结束 (SystemError: error return without exception set),而以 CSV 格式保存即使压缩也是浪费空间(2 字节长 np.float16 比 ASCII 编码的值效率高得多)。

如何以可加载、内存高效(包括磁盘空间)的格式存储我的数据帧?

【问题讨论】:

    标签: python python-2.7 python-3.x pandas dataframe


    【解决方案1】:

    我猜你的数据框太大了。泡菜有一些限制。您最好保存在数据库中或使用 to_hdf(或许多其他 IO 例程,to_msgpack 也可以工作)。

    https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_hdf.html

    【讨论】:

    • 我正在考虑使用.to_hdf(),但我找不到将数据加载回DataFrame 的函数。这种可能性对我来说至关重要,因为我需要分析数据。
    • 哦,这似乎是我需要的。 Pandas 的 API 不是很直观 - 我期待 pandas.DataFrame.from_hdf() 方法 -_-。
    • @abukaj 我想你可以选择我的答案作为最终答案,谢谢
    • @Paddy 我要去 - 只要我的代码完成其存储/读取周期:)
    猜你喜欢
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 2016-04-06
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多