Panda 无法将数据存储在 HDF5 中?
Can't store data in HDF5 with Panda?
我正在尝试以 HDF5 格式存储大型数据帧,但我总是出错。我不应该使用好的方法来做到这一点,但我看不出我错在哪里。
这是我的代码:
import pandas as pd
import numpy as np
nrows=5
ncols=5
colnames=[]
for i in range(0,ncols):
colnames.append('C'+str(i))
df = pd.DataFrame(np.random.randint(9,size=(nrows,ncols)),columns=colnames)
构建一个简单的数据框:
In [13]: df
Out[13]:
C0 C1 C2 C3 C4
0 1 4 5 5 3
1 8 2 7 1 4
2 2 7 6 4 2
3 8 2 4 3 3
4 8 6 5 3 6
现在当我尝试时:
df.to_hdf('test1.hdf','test',mode='w')
或:
df.to_hdf('test_table.hdf','test',format='table',mode='w')
我获得:
AttributeError: 'NoneType' object has no attribute '_f_close'
我也试试这个方法:
store = pd.HDFStore('data/store.h5', 'w')
store['df'] = df
但我得到:
AssertionError: stale weak reference to dead node ``/df/axis0``
正确的做法是什么?
谢谢。
我正在使用:
Python 3.4.1
pandas 0.15.2
表格 3.0.0
正如 James 在评论中所回答的那样,这只是更新到 Tables.
最新版本时修复的错误
我正在尝试以 HDF5 格式存储大型数据帧,但我总是出错。我不应该使用好的方法来做到这一点,但我看不出我错在哪里。
这是我的代码:
import pandas as pd
import numpy as np
nrows=5
ncols=5
colnames=[]
for i in range(0,ncols):
colnames.append('C'+str(i))
df = pd.DataFrame(np.random.randint(9,size=(nrows,ncols)),columns=colnames)
构建一个简单的数据框:
In [13]: df
Out[13]:
C0 C1 C2 C3 C4
0 1 4 5 5 3
1 8 2 7 1 4
2 2 7 6 4 2
3 8 2 4 3 3
4 8 6 5 3 6
现在当我尝试时:
df.to_hdf('test1.hdf','test',mode='w')
或:
df.to_hdf('test_table.hdf','test',format='table',mode='w')
我获得:
AttributeError: 'NoneType' object has no attribute '_f_close'
我也试试这个方法:
store = pd.HDFStore('data/store.h5', 'w')
store['df'] = df
但我得到:
AssertionError: stale weak reference to dead node ``/df/axis0``
正确的做法是什么? 谢谢。
我正在使用: Python 3.4.1 pandas 0.15.2 表格 3.0.0
正如 James 在评论中所回答的那样,这只是更新到 Tables.
最新版本时修复的错误