首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从压缩文件夹中读取H5File到熊猫数据

从压缩文件夹中读取H5File到熊猫数据
EN

Stack Overflow用户
提问于 2019-09-27 19:57:52
回答 2查看 1.4K关注 0票数 0

问题:从压缩文件夹中的文件夹中读取H5File到熊猫数据

背景:我的目录结构如下所示:

file.zip/2019/file.h5

file.zip是压缩文件夹

2019年是压缩文件夹中的文件夹。

我可以使用提取文件提取文件夹,并从文件夹中读取h5文件。然而,想要直接从压缩文件夹读到熊猫的数据。

创建示例文件的代码:

下面是重新创建一个示例h5文件的代码,我试图在这个场景中使用该文件:

步骤1:

代码语言:javascript
运行
复制
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包。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-30 15:34:47

这是在H5py google组:https://groups.google.com/forum/m/#!forum/h5py的帮助下解决的。

代码语言:javascript
运行
复制
 `import zipfile     import h5py     import pandas as pd`
代码语言:javascript
运行
复制
 `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`
代码语言:javascript
运行
复制
 `fiz = zf.open('zipfolder/2019/sample.h5')`
代码语言:javascript
运行
复制
 `hf = h5py.File(fiz,'r')`
代码语言:javascript
运行
复制
 `print(list(hf.keys())) # To see the datasets inside h5 File`
代码语言:javascript
运行
复制
 `df = pd.DataFrame(hf['dset'][:])     df.head()`

使用h5py读取h5Files。熊猫只读取具有结构化数据格式的HDFStore格式,到目前为止还不读h5files。

票数 0
EN

Stack Overflow用户

发布于 2019-09-27 20:06:41

代码语言:javascript
运行
复制
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'))

希望它能帮到你!

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

https://stackoverflow.com/questions/58140698

复制
相关文章

相似问题

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