学习笔记
使用python内建的 pickle序列化模块 进行二进制格式操作是存储数据最高效、最方便的方式之一
pandas 对象拥有一个to_pickle 方法可以将数据以pickle格式写入硬盘
使用 pd.read_pickle 读取文件中 pickle 化的对象
pickle 仅被推荐作为短期的存储格式:
因为 pickle 很难确保格式的长期有效性,一个今天被 pickle 化的对象可能明天会因为库的新版本而无法反序列化。
pandas 内建支持其他两个二进制格式:HDF5 和 MessagePack
pandas 和 numpy 其他的存储格式包括:
- bcolz
基于 Blosc 压缩库的可压缩列式二进制格式 - Feather
跨语言列式文件格式,Feather使用Apache箭头列式存储器格式
使用HDF5格式
HDF5 用于存储大量的科学数组数据
以C库的形式提供,并且具有许多其他语言的接口,包括Java,Julia,matlab和python
HDF5中的“HDF(Hierarchical Data Format)”代表 分层数据格式
每个HDF5文件可以存储多个数据集并且支持元数据
HDF5 支持多种压缩模式的即时压缩,使得重复模式的数据可以更高效地存储
HDF5 适用于处理不适合在内存中存储的超大型数据,可以使你高效读写大型数组的一小块
尽管可以通过使用PyTables或h5py等库直接访问HDF5文件,但pandas提供了一个高阶的接口,可简化Series和DataFrame的存储
HDFStore类像字典一样工作并处理低级别细节
frame=pd.DataFrame({
'a':np.random.randn(