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

相关推荐
六点_dn32 分钟前
Linux学习笔记-shell运算符
linux·笔记·学习
hehelm1 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
浅止菌2 小时前
嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动
linux
BerryS3N2 小时前
Cursor+GitOps:AI驱动的自动化运维新范式
运维·人工智能·自动化
刘某的Cloud3 小时前
手工配置nginx的systemd服务
linux·运维·网络·nginx·systemd
FREEDOM_X3 小时前
嵌入式Linux摄像头采集与图像处理
linux·图像处理·ubuntu
studytosky3 小时前
OpenClaw 入门与 Skill 开发
linux·服务器·ai编程
kaoa0003 小时前
Linux入门攻坚——82、kvm虚拟化-2
linux·运维·服务器
OsDepK3 小时前
Windows快速部署Docker
运维·docker·容器
2601_954706493 小时前
云虚拟化终端架构解析:ARM 云端集群部署与自动化运维实践
运维·arm开发·架构