python - 确定 pandas HDF 文件中 DataFrame 的格式

标签 python pandas dataframe format hdf

有一个 HDF 文件“file.h5”,其中保存的 pandas DataFrame(或系列)的键名是“df”。如何确定“df”以何种格式(即“固定”或“表格”)保存到文件中?

感谢您的帮助!

最佳答案

有点晚了,但也许其他人会发现它有帮助。

您可以解析 HDFStore.info() 的输出. table 格式的对象具有 appendable 类型:

>>> print(h5_table.info())
<class 'pandas.io.pytables.HDFStore'>
File path: /tmp/df_table.h5
/df            frame_table  (typ->appendable,nrows->2,ncols->2,indexers->[index],dc->[])

>>> print(h5_fixed.info())
<class 'pandas.io.pytables.HDFStore'>
File path: /tmp/df_fixed.h5
/df            frame        (shape->[2,2]) 

这是一个最小的(即没有丢失文件或 key 的错误处理)示例:

def get_hd5_format(path, key):
    with pd.HDFStore(path) as store:
        info = store.info()
    return 'table' if 'typ->appendable' in next(k for k in info.splitlines()[2:] if k.startswith('/'+key)).split()[2] else 'fixed'

示例用法:

>>> get_hd5_format('/tmp/df_table.h5', 'df')
'table'
>>> get_hd5_format('/tmp/df_fixed.h5', 'df')
'fixed'

关于python - 确定 pandas HDF 文件中 DataFrame 的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50569465/

相关文章:

python - 如果 python 中的行重复,则删除所有行

pandas - 将 pyspark 数据帧转换为 pandas 数据帧

使用子集从 data.frame 中删除列列表

python - Pandas:每组的最大值索引

python - 如何根据数据框中的相同索引将同一列中的值相乘?

python - 使用 Python 解析 XML

python - 为一列中的多行生成不同的随机数

python - 如何将两个 keras 模型连接成一个模型?

python - 循环年份,同时跳过某些月份

python - 服务器,它将杀死并再次运行无限循环