【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(),可以高效存储和查询大规模数据,适用于科学计算和数据分析场景。

相关推荐
码农小白AI6 小时前
AI报告审核加速融入自动化实验室:IACheck破解智能设备时代报告管理新挑战
运维·人工智能·自动化
utf8mb4安全女神6 小时前
克隆的虚拟机怎么更改ip地址
运维
赵民勇6 小时前
fuse-overlayfs命令详解
linux·容器
sulikey6 小时前
个人Linux操作系统学习笔记6 - 操作系统与进程初识
linux·笔记·学习·操作系统·进程
万能的知了7 小时前
服务器托管 vs 云主机 vs 裸金属:一个决策故事
运维·服务器·云计算
杨云龙UP7 小时前
Oracle RAC / ODA 生产环境指定 PDB 启动 SOP
linux·运维·数据库·oracle
Shingmc37 小时前
【Linux】多路转接之select
linux·网络
luweis8 小时前
企智孪生 ETA(3.3 认知算法层:ETA 的思维内核 3.4 基础架构:算力与弹性)【浙江联保网络 卢伟舜】
大数据·运维·线性代数·ai·矩阵·学习方法
极客老王说Agent8 小时前
屏幕理解能力是下一代自动化的关键吗?2026年自动化范式演进深度解析
运维·人工智能·ai·chatgpt·自动化
LT10157974449 小时前
2026年电商RPA选型指南:电商运营全流程自动化测评
运维·自动化·rpa