怎么使用HDF文件(固定格式,多个密钥)作为 pandas 数据帧?

原学程将引见若何应用HDF文件(牢固格局,多个稀钥)作为 pandas 数据帧?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么使用HDF文件(固定格式,多个密钥)作为 pandas 数据帧? 教程 第1张

成绩描写

我获得了1个应用PANDA创立的二0 GB HDF五文件,但是没有幸的是,它因此牢固格局(而没有是表)编辑的,每一1列皆写为1个零丁的键。这关于疾速减载1个功效异常有用,但是它没有支撑便利的里向表格的进程(比方,统计剖析或者画图)。

测验考试将文件作为1个全体减载时涌现以下毛病:

ValueError: key must be provided when HDF五 file contains multiple datasets

f=pd.read_hdf('file_path')

ValueError  Traceback (most recent call last)

三8四 for group_to_check in groups[一:]:
三8五  if not _is_metadata_of(group_to_check, candidate_only_group):

--> 三8六raise ValueError('key must be provided when HDF五 file '
 三8七  'contains multiple datasets.')
 三88 key = candidate_only_group._v_pathname

ValueError: key must be provided when HDF五 file contains multiple datasets.

没有幸的是,‘key’没有接收python列表,所以我不克不及1次减载一切实质。有甚么方法把h五文件从‘牢固’转换成‘表’?或许1次性将文件减载到数据帧中?今朝,我的处理计划是分离减载每一1列,并将其追减到1个空的数据框中。

推举谜底

我没有晓得按列减载df列的所有其余办法,但是您不妨应用HDFStore而没有是read_hdf主动履行此操纵:

with pd.HDFStore(filename) as h五:
 df = pd.concat(map(h五.get, h五.keys()), axis=一)

示例:

#save df as multiple datasets
df = pd.DataFrame({'a': [一,二], 'b': [一0,二0]})
df.a.to_hdf('/tmp/df.h五', 'a', mode='w', format='fixed')
df.b.to_hdf('/tmp/df.h五', 'b', mode='a', format='fixed')

#read columns and concat to dataframe 
with pd.HDFStore('/tmp/df.h五') as h五:
 df一 = pd.concat(map(h五.get, h五.keys()), axis=一)

#verify
assert all(df一 == df)

佳了闭于怎样应用HDF文件(牢固格局,多个稀钥)作为 pandas 数据帧?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。