Python pandas.DataFrame.to_hdf函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.to_hdf方法的使用。

DataFrame.to_hdf(path_or_buf, key, mode='a', complevel=None, complib=None, append=False, format=None, index=True, min_itemsize=None, nan_rep=None, dropna=None, data_columns=None, errors='strict', encoding='UTF-8') [source]

使用HDFStore将包含的数据写入HDF5文件。

分层数据格式(HDF)是自描述的,允许应用程序在没有外部信息的情况下解释文件的结构和内容。一个HDF文件可以包含相关对象的混合,这些对象可以作为一个组或作为单个对象进行访问。

为了将另一个DataFrame或Series添加到现有的HDF文件中,请使用附加模式和另一个键。

有关更多信息,请参见用户指南

参数:

path_or_buf strpandas.HDFStore

文件路径或HDFStore对象。

key :str

存储中组的标识符。

mode :{‘a’, ‘w’, ‘r+’}, 默认为 ‘a’

打开文件的方式:

1) 'w':写入,将创建一个新文件

(具有相同名称的现有文件将被删除)。

2) 'a':附加,将打开一个现有文件以进行读取和写入,

如果该文件不存在,则会创建该文件。

3) 'r+':类似于'a',但是文件必须已经存在。

complevel :{0-9}, 可选

指定数据的压缩级别。值为0将禁用压缩。

complib :{'zlib','lzo','bzip2','blosc'}

默认为'zlib'

指定要使用的压缩库。从v0.20.2开始,

支持这些Blosc附加压缩器(如果未指定压缩器,

则默认为:‘blosc:blosclz’): 

{‘blosc:blosclz’, ‘blosc:lz4’, 

‘blosc:lz4hc’, ‘blosc:snappy’, 

‘blosc:zlib’, ‘blosc:zstd’}

指定不可用的压缩库会发出ValueError

append :bool,默认为False

对于表格格式,将输入数据附加到现有格式。

pandas-gbq的0.2.0版本中的新功能。

format :{‘fixed’, ‘table’, None}, 默认为 ‘fixed’

可能的值:

1) ‘fixed’: 固定格式。快速书写/阅读。不可附加,

也不可搜索。

2) ‘table’: 表格格式。编写为PyTables表结构,

该结构的性能可能较差,但允许更灵活的操作,

例如搜索/选择数据子集。

3) 如果为None,则检查pd.get_option

('io.hdf.default_format')

然后回退到‘fixed’

errors :str, 默认为 ‘strict’

指定如何处理编码和解码错误。

有关open()选项的完整列表,

请参见errors参数。

encoding :str, 默认为 “UTF-8”

min_itemsize :dictint, 可选

将列名称映射到列的最小字符串大小。

nan_rep :Any,可选

如何将空值表示为str。不允许使用append = True

data_columns :columns列表或True,可选

要创建为磁盘查询的索引数据列的列列表,

或者使用True来使用所有列。默认情况下,

仅索引对象的轴。请参阅通过数据列查询

仅适用于format ='table'

例子

>>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},
...                   index=['a', 'b', 'c'])
>>> df.to_hdf('data.h5', key='df', mode='w')

我们可以将另一个对象添加到同一文件中

>>> s = pd.Series([1, 2, 3, 4])
>>> s.to_hdf('data.h5', key='s')

从HDF文件读取:

>>> pd.read_hdf('data.h5', 'df')
A  B
a  1  4
b  2  5
c  3  6
>>> pd.read_hdf('data.h5', 's')
0    1
1    2
2    3
3    4
dtype: int64

删除包含数据的文件:

>>> import os
>>> os.remove('data.h5')

文档:pandas.DataFrame.to_hdf

推荐阅读
cjavapy编程之路首页