Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 难以获取HDF5表数据中的多个列_Python_Pandas_Numpy_Hdf5 - Fatal编程技术网

Python 难以获取HDF5表数据中的多个列

Python 难以获取HDF5表数据中的多个列,python,pandas,numpy,hdf5,Python,Pandas,Numpy,Hdf5,我是hdf5新手,尝试将数据帧行存储为hdf5格式。我要在文件中的不同位置追加一行;但是,每次我附加它时,它都会显示在单个列中的数组中,而不是显示在多个列中的单个值中 我试过h5py和熊猫,看起来熊猫是更好的选择。此外,我还尝试了很多不同的方法。诚然,任何帮助都将不胜感激 这里是我多次向hdf5文件发送一个数组 作为pd进口熊猫 将numpy作为np导入 数据=np.零((1,48),数据类型=浮点) columnName=['Hello'+str(y)表示(x,y),np.ndenumera

我是hdf5新手,尝试将数据帧行存储为hdf5格式。我要在文件中的不同位置追加一行;但是,每次我附加它时,它都会显示在单个列中的数组中,而不是显示在多个列中的单个值中

我试过h5py和熊猫,看起来熊猫是更好的选择。此外,我还尝试了很多不同的方法。诚然,任何帮助都将不胜感激

这里是我多次向hdf5文件发送一个数组


作为pd进口熊猫
将numpy作为np导入
数据=np.零((1,48),数据类型=浮点)
columnName=['Hello'+str(y)表示(x,y),np.ndenumerate(数据)中的项]
df=pd.DataFrame(数据=数据,列=列名)
file=pd.HDFStore('file.hdf5',mode='a',complevel=9,comlib='blosc')
对于范围(0,11)内的x:
file.put('/data',df,column_data=columnName,append=True,format=table')
这似乎很管用:

In [247]: store.put('foo',df,append=True,format='table')                               
In [248]: store.put('foo',df,append=True,format='table')                               
In [249]: store.put('foo',df,append=True,format='table')                               
In [250]: store['foo']                                                                 
Out[250]: 
   Hello0  Hello1  Hello2  Hello3  Hello4  ...  Hello43  Hello44  Hello45  Hello46  Hello47
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0

[3 rows x 48 columns]

不确定追加和放置之间是否有区别/区别是什么。。。但两者似乎都起作用。此外,它似乎正在创建一个非常大的文件(不是使用此伪代码)。。。关于压缩技术有什么建议吗?h5py似乎更适合创建压缩数据。熊猫似乎生成了很多额外的元数据,或者至少是占用了很多额外空间的东西。。。。有一个为每个组生成的_i_表文件夹。有没有办法摆脱这种情况?数据帧有行和列索引以及其他元数据。但与2d值数组相比,这些值应该很小。M+N vs M*Nyeah由于某种原因,这个“\u i\u tables”在文件中占用了大量空间。它似乎在为生成表的每一列数据收集统计数据,我没有。这个
\u表中有什么?
i
代表索引吗?
表格
格式(与
固定
相反)应该是可追加和可搜索的。这些额外的能力可能是有代价的——无论是在时间上还是在空间上。
In [247]: store.put('foo',df,append=True,format='table')                               
In [248]: store.put('foo',df,append=True,format='table')                               
In [249]: store.put('foo',df,append=True,format='table')                               
In [250]: store['foo']                                                                 
Out[250]: 
   Hello0  Hello1  Hello2  Hello3  Hello4  ...  Hello43  Hello44  Hello45  Hello46  Hello47
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0

[3 rows x 48 columns]