首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas HDFStore -如何重新开放?

pandas HDFStore -如何重新开放?
EN

Stack Overflow用户
提问于 2013-01-30 04:41:42
回答 3查看 19.1K关注 0票数 21

我使用以下命令创建了一个文件:

代码语言:javascript
复制
store = pd.HDFStore('/home/.../data.h5')

并使用以下命令存储了一些表:

代码语言:javascript
复制
store['firstSet'] = df1
store.close()

我关闭了python,并在一个新的环境中重新打开。

如何重新打开此文件?

当我走的时候:

代码语言:javascript
复制
store = pd.HDFStore('/home/.../data.h5')

我得到以下错误。

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/misc/apps/linux/python-2.6.1/lib/python2.6/site-packages/pandas-0.10.0-py2.6-linux-x86_64.egg/pandas/io/pytables.py", line 207, in __init__
    self.open(mode=mode, warn=False)
  File "/misc/apps/linux/python-2.6.1/lib/python2.6/site-packages/pandas-0.10.0-py2.6-linux-x86_64.egg/pandas/io/pytables.py", line 302, in open
    self.handle = _tables().openFile(self.path, self.mode)
  File "/apps/linux/python-2.6.1/lib/python2.6/site-packages/tables/file.py", line 230, in openFile
    return File(filename, mode, title, rootUEP, filters, **kwargs)
  File "/apps/linux/python-2.6.1/lib/python2.6/site-packages/tables/file.py", line 495, in __init__
    self._g_new(filename, mode, **params)
  File "hdf5Extension.pyx", line 317, in tables.hdf5Extension.File._g_new (tables/hdf5Extension.c:3039)
tables.exceptions.HDF5ExtError: HDF5 error back trace

  File "H5F.c", line 1582, in H5Fopen
    unable to open file
  File "H5F.c", line 1373, in H5F_open
    unable to read superblock
  File "H5Fsuper.c", line 334, in H5F_super_read
    unable to find file signature
  File "H5Fsuper.c", line 155, in H5F_locate_signature
    unable to find a valid file signature

End of HDF5 error back trace

Unable to open/create file '/home/.../data.h5'

我在这里做错了什么?谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-07-09 02:17:56

在我看来,下面的方法效果最好:

代码语言:javascript
复制
df = pd.DataFrame(...)

"write"
with pd.HDFStore('test.h5',  mode='w') as store:
    store.append('df', df, data_columns= df.columns, format='table')

"read"
with pd.HDFStore('test.h5',  mode='r') as newstore:
    df_restored = newstore.select('df')
票数 10
EN

Stack Overflow用户

发布于 2014-07-07 18:10:14

您可以尝试执行以下操作:

代码语言:javascript
复制
store = pd.io.pytables.HDFStore('/home/.../data.h5')
df1 = store['firstSet']

或者直接使用read方法:

代码语言:javascript
复制
df1 = pd.read_hdf('/home/.../data.h5', 'firstSet')

无论哪种方式,您都应该有pandas 0.12.0或更高版本...

票数 5
EN

Stack Overflow用户

发布于 2015-06-30 15:13:07

我遇到了同样的问题,最后通过安装pytables模块(在我正在使用的pandas模块旁边)解决了这个问题:

conda安装pytables

这给我带来了numexpr-2.4.3和pytables-3.2.0

在那之后,它起作用了。我使用python 2.7.9下的pandas 0.16.2

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14591855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档