【Pandas】pandas Series to_xarray

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

注意事项
  1. 依赖库 :需安装 tables 库(pip install tables)。
  2. 模式冲突 :若文件已存在且 mode='w',会覆盖原有数据。
  3. 查询限制where 条件仅支持 format='table' 格式。
  4. 数据类型:复杂对象(如自定义类)可能无法正确存储。

文件结构示例

HDF5 文件内容(使用 h5py 查看):

复制代码
/data.h5
   └── series_key (Group)
       └── table (Table)
           ├── index (StringCol)
           └── values (Int32Col)

通过 to_hdf(),可以高效存储和查询大规模数据,适用于科学计算和数据分析场景。

相关推荐
小安运维日记3 小时前
CKS认证 | Day3 K8s容器运行环境安全加固
运维·网络·安全·云原生·kubernetes·云计算
我是唐青枫3 小时前
Linux ar 命令使用详解
linux·运维·服务器
mljy.3 小时前
Linux《进程概念(上)》
linux
IEVEl4 小时前
Centos7 开放端口号
linux·网络·centos
我要升天!5 小时前
Linux中《环境变量》详细介绍
linux·运维·chrome
MobiCetus5 小时前
有关pip与conda的介绍
linux·windows·python·ubuntu·金融·conda·pip
Wnq100726 小时前
DEEPSEEK创业项目推荐:
运维·计算机视觉·智能硬件·ai创业·deepseek
weixin_428498496 小时前
Linux系统perf命令使用介绍,如何用此命令进行程序热点诊断和性能优化
linux·运维·性能优化
盛满暮色 风止何安6 小时前
VLAN的高级特性
运维·服务器·开发语言·网络·网络协议·网络安全·php
lemon3106247 小时前
dockerfile制作镜像
linux·运维·服务器·学习