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

相关推荐
lingran__20 分钟前
Linux 基础常用指令万字详解(上)|文件目录命令,结合底层原理剖析
linux·运维·服务器·后端·centos·linux基础指令
各类产品分享1 小时前
电力行业AR智能运维哪个品牌好
运维·ar·ar巡检
Dlrb12111 小时前
Linux驱动---sys文件系统自动添加设备节点、添加调试节点以及MISC设备驱动的解释
linux·imx6ull·misc·设备节点·sys文件系统
贾天佑忆月 迷失的昵1 小时前
客户端与服务器持续同步解析(轮询,comet,WebSocket)
运维·服务器·websocket
刘某的Cloud1 小时前
Galera Cluster mariadb 生产环境常见问题排查与运维指南
linux·运维·数据库·mariadb·集群高可用
70asunflower2 小时前
Linux 性能排查分析完全教程
linux·运维
zhangfeng11332 小时前
宝塔8 升级到 11导致 服务器无法访问外网dns失效了,无法访问bt.cn 解决方法 测试通过
运维·服务器
兵bing3 小时前
Docker Compose 配置文件归纳总结-千问
运维·docker·容器
dok123 小时前
Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》 (11)kmalloc 动态内存分配和struct file中的私有数据
linux·驱动开发·算法
INNOVIX稳石机器人3 小时前
从“存得下”到“管得活”:稳石四向穿梭车如何重塑密集仓储新逻辑?
大数据·运维