如何判断pandas HDF文件中DataFrame的存储格式(fixed/table)
如何判断HDF文件中pandas对象的存储格式(fixed/table)
没问题,我来教你两种简单可靠的方法,帮你搞清楚这个HDF文件里的df对象是用fixed还是table格式保存的:
方法一:用pandas原生API(最直接省心)
pandas的HDFStore类专门提供了查看存储格式的接口,这是最贴合pandas存储逻辑的方式,绝对不会出错。
直接运行这段代码就行:
import pandas as pd # 用with语句打开HDF文件,会自动帮你关闭文件,避免资源泄漏 with pd.HDFStore('file.h5') as store: # 获取对应键的存储对象 storer = store.get_storer('df') # 直接打印格式,结果只会是'fixed'或'table'其中一个 print(f"该对象的存储格式是: {storer.format}")
运行后控制台会直接输出你要的结果,一步到位。
方法二:用h5py查看底层HDF5结构(适合想深挖存储逻辑的情况)
如果你想从HDF5的底层结构层面验证,也可以用h5py库直接读取文件的结构:
import h5py with h5py.File('file.h5', 'r') as h5_file: df_obj = h5_file['df'] # pandas的fixed格式是直接以HDF5 Dataset形式存储的;table格式则是一个Group,里面包含名为'table'的数据集 if isinstance(df_obj, h5py.Group) and 'table' in df_obj: print("该对象的存储格式是: table") elif isinstance(df_obj, h5py.Dataset): print("该对象的存储格式是: fixed")
这个方法能让你直观看到pandas在HDF5里的存储逻辑,但如果只是要判断格式,第一种方法已经完全够用啦。
内容的提问来源于stack exchange,提问作者S.V
相关产品推荐
相关产品推荐

