问题:从压缩文件夹中的文件夹中读取H5File到熊猫数据
背景:我的目录结构如下所示:
file.zip/2019/file.h5
file.zip是压缩文件夹
2019年是压缩文件夹中的文件夹。
我可以使用提取文件提取文件夹,并从文件夹中读取h5文件。然而,想要直接从压缩文件夹读到熊猫的数据。
创建示例文件的代码:
下面是重新创建一个示例h5文件的代码,我试图在这个场景中使用该文件:
步骤1:
import h5py
file = h5py.File('sample.h5','w')
dataset = file.create_dataset("dset",(4, 6), h5py.h5t.STD_I32BE)
file.close()第2步:
创建文件后,将其放在文件夹"2019“中。将"2019“放入另一个名为zip文件夹的文件夹中,并将其压缩。所以现在目录结构看起来是"file.zip/2019/file.h5“
注意:这是一个H5py文件和HDFStore。熊猫read_hdf不能在H5Files上工作。阅读HDF5文档,以获得更多关于H5文件和HDFStore的清晰信息。它们都有不同的内部结构,但是使用相同的.h5 extension.For读取H5文件,使用h5py包。
发布于 2019-09-30 15:34:47
这是在H5py google组:https://groups.google.com/forum/m/#!forum/h5py的帮助下解决的。
`import zipfile import h5py import pandas as pd` `print(h5py.__version__)# Make sure the version is 2.9 or above zf = zipfile.ZipFile('zipfolder.zip') print(zf.namelist())# get the name of the fileobject` `fiz = zf.open('zipfolder/2019/sample.h5')` `hf = h5py.File(fiz,'r')` `print(list(hf.keys())) # To see the datasets inside h5 File` `df = pd.DataFrame(hf['dset'][:]) df.head()`使用h5py读取h5Files。熊猫只读取具有结构化数据格式的HDFStore格式,到目前为止还不读h5files。
发布于 2019-09-27 20:06:41
import os
import pandas as pd
import zipfile
with zipfile.ZipFile('file.zip') as z:
for filename in z.namelist():
if os.path.isdir(filename) and filename == "2019":
# read the file into a pandas dataframe
df = pd.read_hdf(z.open(os.path.join(filename, "file.h5"), 'rb'))希望它能帮到你!
https://stackoverflow.com/questions/58140698
复制相似问题