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

相关推荐
乌托邦的逃亡者11 分钟前
Docker的/var/lib/docker/目录占用100%的处理方法
运维·docker·容器
ldj202016 分钟前
Jenkins 流水线配置
运维·jenkins
古希腊数通小白(ip在学)3 小时前
stp拓扑变化分类
运维·服务器·网络·智能路由器
l1x1n04 小时前
Vim 编辑器常用操作详解(新手快速上手指南)
linux·编辑器·vim
12点一刻5 小时前
搭建自动化工作流:探寻解放双手的有效方案(2)
运维·人工智能·自动化·deepseek
未来之窗软件服务5 小时前
东方仙盟AI数据中间件使用教程:开启数据交互与自动化应用新时代——仙盟创梦IDE
运维·人工智能·自动化·仙盟创梦ide·东方仙盟·阿雪技术观
ajassi20006 小时前
开源 python 应用 开发(三)python语法介绍
linux·python·开源·自动化
o不ok!6 小时前
Linux面试问题-软件测试
linux·运维·服务器
DaxiaLeeSuper6 小时前
Prometheus+Grafana+node_exporter监控linux服务器资源的方案
linux·grafana·prometheus
尽兴-7 小时前
如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
linux·数据库·windows·sql·macos