我想用bcolz将pandas数据帧保存到文件中。
我试过了:
import bcolz
import pandas as pd
df = pd.read_csv(open("mydata.csv", 'rb'), delimiter='\t')
ct = bcolz.ctable.fromdataframe(df)
之后,ct
包含压缩的数据帧,但我找不到如何将其保存到文件中。
答案 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
;压缩与柱状数据格式一样好,如果不是更好,后者更关心对数据进行快速查询。