pandas:将空数据帧写入HDF-fi

2024-04-25 09:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法强迫pandas将空数据帧写入HDF文件?在

import pandas as pd
df = pd.DataFrame(columns=['x','y'])
df.to_hdf('temp.h5', 'xxx')
df2 = pd.read_hdf('temp.h5', 'xxx') 

输出:

^{pr2}$

使用format='table'写入:

import pandas as pd
df = pd.DataFrame(columns=['x','y'])
df.to_hdf('temp.h5', 'xxx', format='table')
df2 = pd.read_hdf('temp.h5', 'xxx')

输出:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".../Python-3.6.3/lib/python3.6/site-packages/pandas/io/pytables.py", line 389, in read_hdf
    return store.select(key, auto_close=auto_close, **kwargs)
  File ".../Python-3.6.3/lib/python3.6/site-packages/pandas/io/pytables.py", line 722, in select
    raise KeyError('No object named {key} in the file'.format(key=key))
KeyError: 'No object named xxx in the file'

熊猫版本:0.24.2

谢谢你的帮助!在


Tags: keyinimportformatpandasdfreadas
1条回答
网友
1楼 · 发布于 2024-04-25 09:58:49

将空数据帧放入fixed格式的HDFStore应该可以工作(也许您需要检查其他包的版本,例如tables):

# Versions
pd.__version__
tables.__version__

# DF
df = pd.DataFrame(columns=['x','y'])
df

# Dump in fixed format
with pd.HDFStore('temp.h5') as store:
    store.put('df', df, format='f')
    print('Read:')
    store.select('df')

>>> '0.24.2'
>>> '3.5.1'
>>>   x     y
>>>
>>> Read:
>>>   x     y

Pytable确实禁止这样做(至少是这样),但是对于fixed熊猫有它的{a1}。在

但正如在同一个github问题中讨论的,也有一些努力来修复table的这种行为。但看起来解决方案仍然是悬而不决的,因为它在march的结尾是这样。在

相关问题 更多 >