Pandas2.2 Series
Serialization & IO & conversion
方法 | 描述 |
---|---|
Series.to_pickle(path, *[, compression, ...]) | 用于将 Series 对象序列化为二进制格式并保存到文件中 |
Series.to_csv([path_or_buf, sep, na_rep, ...]) | 用于将 Series 对象以 CSV(逗号分隔值)格式保存到文件中 |
Series.to_dict(*[, into]) | 用于将 Series 对象转换为 Python 字典 |
Series.to_excel(excel_writer, *[, ...]) | 用于将 Series 对象写入 Excel 文件 |
Series.to_frame([name] ) |
用于将 Series 对象转换为 DataFrame |
Series.to_xarray() | 用于将 Series 对象转换为 xarray 的 DataArray 对象 |
Series.to_hdf(path_or_buf, *, key[, mode, ...]) | 用于将 Series 数据保存为 HDF5 格式(一种高效存储大型科学数据的文件格式) |
pandas.Series.to_hdf
pandas.Series.to_hdf()
用于将 Series
数据保存为 HDF5 格式(一种高效存储大型科学数据的文件格式)。该方法基于 PyTables 库实现,支持压缩、追加数据、多键值存储等高级功能。
方法签名
python
Series.to_hdf(
path_or_buf, # 文件路径或 HDFStore 对象
key, # 存储的键(标识符)
mode='a', # 文件模式:'a'(追加)、'w'(覆盖)、'r'(只读)
complevel=None, # 压缩级别(0-9)
complib=None, # 压缩库:'zlib', 'bzip2', 'lzo' 等
append=False, # 是否追加到现有文件
format=None, # 存储格式:'fixed'(默认,快速读写)或 'table'(可查询)
index=True, # 是否保存索引
min_itemsize=None, # 列的最小大小(字典形式,如 {'column': 100})
nan_rep=None, # NaN 值的表示方式(如 'null')
dropna=None, # 是否删除缺失值行(仅对 'table' 格式有效)
data_columns=None, # 指定可查询的列(列表)
errors='strict', # 错误处理策略
encoding='UTF-8' # 字符编码
)
参数说明
参数 | 说明 |
---|---|
path_or_buf |
文件路径(字符串)或已打开的 HDFStore 对象。 |
key |
存储的键名,用于后续读取时的标识符。 |
mode |
'a' (追加,默认)、'w' (覆盖)、'r' (只读)。 |
format |
'fixed' (快速存储)或 'table' (支持查询,速度较慢)。 |
complevel |
压缩级别(0-9),值越大压缩率越高,但速度越慢。 |
complib |
压缩库,如 'zlib' (默认)、'bzip2' 、'lzo' 。 |
data_columns |
指定为数据列的字段,支持查询(仅 'table' 格式有效)。 |
示例及结果
示例 1:基本保存与读取
python
import pandas as pd
# 创建示例 Series
s = pd.Series([10, 20, 30], name='values', index=['a', 'b', 'c'])
# 保存到 HDF5 文件
s.to_hdf('data.h5', key='series_key', mode='w')
# 从 HDF5 文件读取
loaded_s = pd.read_hdf('data.h5', key='series_key')
print(loaded_s)
输出结果:
a 10
b 20
c 30
Name: values, dtype: int64
示例 2:查询数据(需 format='table'
)
python
# 保存为可查询格式
s.to_hdf('query_data.h5', key='data', format='table', data_columns=['index'])
# 使用 where 条件查询索引为 'a' 或 'c' 的数据
query_result = pd.read_hdf(
'query_data.h5',
key='data',
where='index in ["a", "c"]'
)
print(query_result)
输出结果:
a 10
c 30
Name: values, dtype: int64
注意事项
- 依赖库 :需安装
tables
库(pip install tables
)。 - 模式冲突 :若文件已存在且
mode='w'
,会覆盖原有数据。 - 查询限制 :
where
条件仅支持format='table'
格式。 - 数据类型:复杂对象(如自定义类)可能无法正确存储。
文件结构示例
HDF5 文件内容(使用 h5py
查看):
/data.h5
└── series_key (Group)
└── table (Table)
├── index (StringCol)
└── values (Int32Col)
通过 to_hdf()
,可以高效存储和查询大规模数据,适用于科学计算和数据分析场景。