2017-06-12 22 views
0

我在保存pandas.DataFrame(1 440 000 000行)時遇到問題。如何以pandas-LOADABLE二進制格式存儲`pandas.DataFrame`而不是`pickle`

從我可以在API中看到的,存儲(然後加載)數組的唯一可用選項是CSV或pickle。

保存在pickle格式中以一個神祕的異常(SystemError: error return without exception set)結尾,即使壓縮(2字節長的np.float16比ASCII編碼值效率更高),以CSV格式保存也浪費空間。

如何將我的數據框存儲在可加載的,內存有效的(包括磁盤空間)格式中?

回答

1

我猜你的數據框太大了。泡菜有一些限制。在數據庫中保存或使用to_hdf(或許多其他IO例程,to_msgpack可能也適用),則要好得多。

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

+0

我正在考慮使用.to_hdf的'()',但我找不到任何函數加載數據回'DataFrame'。這對我來說至關重要,因爲我需要分析數據。 – abukaj

+2

read_hdf呢? https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_hdf.html – Paddy

+0

哦,這似乎是我需要的。熊貓的API不是很直觀 - 我期待'pandas.DataFrame.from_hdf()'方法-_-。 – abukaj

相關問題