[英]Reading in txt file as pandas dataframe from a folder within a zipped folder
[英]Read H5File from a folder inside a zipped folder into pandas dataframe
问题:从压缩文件夹中的文件夹中读取 H5File 到 pandas dataframe
背景:我的目录结构如下所示:
文件.zip/2019/file.h5
file.zip 是压缩文件夹
2019 是压缩文件夹内的文件夹
我可以使用 extractall 提取文件夹并从文件夹中读取 h5 文件。 但是,希望直接从压缩文件夹中读取它到 pandas dataframe。
创建示例文件的代码:
这是重新创建我试图在这种情况下使用的示例 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”放在另一个名为 zipfolder 和 zip 的文件夹中。 所以现在目录结构看起来像“file.zip/2019/file.h5”
注意:这是一个 H5py 文件和 HDFStore。 Pandas read_hdf 不能在 H5Files 上工作。 阅读 HDF5 文档以更清楚地了解 H5 文件和 HDFStore。 它们都有不同的内部结构但是相同的.h5 扩展名。对于读取 H5 文件,使用 h5py package。
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'))
希望对您有所帮助!
在 H5py 谷歌组的帮助下解决了这个问题: 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。 Pandas 仅读取具有结构化 dataframe 格式的 HDFStore 格式,并且目前不读取 h5files。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.