使用bcolz将pandas数据帧保存到文件

时间:2015-07-26 21:07:23

标签: python pandas

我想用bcolz将pandas数据帧保存到文件中。

我试过了:

import bcolz
import pandas as pd

df = pd.read_csv(open("mydata.csv", 'rb'), delimiter='\t')
ct = bcolz.ctable.fromdataframe(df)

之后,ct包含压缩的数据帧,但我找不到如何将其保存到文件中。

3 个答案:

答案 0 :(得分:8)

您只需在数据框中读取时指定创建表的位置,如下所示:

import bcolz
import pandas as pd

df = pd.read_csv(open("mydata.csv", 'rb'), delimiter='\t')
ct = bcolz.ctable.fromdataframe(df, rootdir='dataframe.bcolz')

答案 1 :(得分:3)

您可以将bcolz与持久数据容器完全相同,而不是内存数据容器。你可能想看一下本教程,它使用pandas / HDF5,纯PyTables,SQLite和bcolz来处理磁盘上的数据集:

https://github.com/FrancescAlted/EuroPython2015/blob/master/4-On-Disk-Tables.ipynb

答案 2 :(得分:2)

看起来bcolz.ctable有一个tohdf5方法可以使用;但是你需要安装hdf5,pytables等。否则你可以使用pickle,这是将通用Python对象保存到磁盘的常用方法。

顺便说一下,如果您只是对压缩数据感兴趣,那么您可能需要查看一个更低技术的选项,例如gzip;压缩与柱状数据格式一样好,如果不是更好,后者更关心对数据进行快速查询