python 二进制书写格式_Python 二进制格式_pandas pickle - 树懒学堂

二进制格式

使用Python内建的pickle序列化模块进行二进制格式操作是存储数据(也称为序列化)最高效、最方便的方式之一。pandas对象拥有一个to_pickle方法可以将数据以pickle格式写入硬盘:

可以直接使用内建的pickle读取文件中“pickle化”的对象,或更方便地使用pandas.read_pickle做上述操作:

注意:pickle仅被推荐作为短期的存储格式。问题在于pickle很难确保格式的长期有效性;一个今天被pickle化的对象可能明天会因为库的新版本而无法反序列化。

pandas内建支持其他两个二进制格式:HDF5和MessagePack。pandas或NumPy其他的存储格式包括:

bcolz(http://bcolz.blosc.org/)基于Blosc压缩库的可压缩列式二进制格式。

Feather(http://github.com/wesm/feather)

R编程社区的Hadley Wickham(http://hadley.nz/)设计的跨语言列式文件格式。

Feather使用Apache箭头(http://arrow.apache.org)列式存储器格式。

1、使用HDF5格式

HDF5是一个备受好评的文件格式,用于存储大量的科学数组数据。它以C库的形式提供,并且具有许多其他语言的接口,包括Java、Julia、MATLAB和Python。HDF5中的“HDF”代表分层数据格式。每个HDF5文件可以存储多个数据集并且支持元数据。与更简单的格式相比,HDF5支持多种压缩模式的即时压缩,使得重复模式的数据可以更高效地存储。HDF5适用于处理不适合在内存中存储的超大型数据,可以使你高效读写大型数组的一小块。

尽管可以通过使用PyTables或h5py等库直接访问HDF5文件,但pandas提供了一个高阶的接口,可以简化Series和DataFrame的存储。HDFStore类像字典一样工作并处理低级别细节:

包含在HDF5文件中的对象可以使用相同的字典型API进行检索:

HDFStore支持两种存储模式,’fixed’和’table’。后者速度更慢,但支持一种特殊语法的查询操作:

注意:HDF5并不是数据库,它是一种适合一次写入多次读取的数据集。尽管数据可以在任何时间添加到文件中,但如果多个写入者持续写入,文件可能会损坏。

2、读取Microsoft Excel文件

pandas也支持通过ExcelFile类或pandas.read_excel函数来读取存储在Excel 2003(或更高版本)文件中的表格型数据。这些工具内部是使用附加包xlrd和openpyxl来分别读取XLS和XLSX文件的。可能需要使用pip或conda手动安装这些工具。

存储在表中的数据可以通过pandas.read_excel读取到DataFrame中:

如果你读取的是含有多个表的文件,生成ExcelFile更快,可以更简洁地将文件名传入pandas.read_excel:

如需将pandas数据写入到Excel格式中,必须先生成一个ExcelWriter,然后使用pandas对象的to_excel方法将数据写入:

也可以将文件路径传给to_excel,避免直接调用ExcelWriter:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值