gpt4 book ai didi

python - Pandas 无法读取使用 h5py 创建的 hdf5 文件

转载 作者:行者123 更新时间:2023-12-03 13:42:03 26 4
gpt4 key购买 nike

当我尝试读取使用 h5py 创建的 HDF5 格式文件时出现 pandas 错误。我想知道我是不是做错了什么?

import h5py
import numpy as np
import pandas as pd
h5_file = h5py.File('test.h5', 'w')
h5_file.create_dataset('zeros', data=np.zeros(shape=(3, 5)), dtype='f')
h5_file.close()
pd_file = pd.read_hdf('test.h5', 'zeros')

给出一个错误:
TypeError:如果对象不存在也没有传递值,则无法创建存储器

我试图将 key 集指定为“/zeros”(就像我在读取文件时使用 h5py 所做的那样),但没有成功。

如果我使用 pandas.HDFStore 读取它,我会得到一个空存储:
store = pd.HDFStore('test.h5')
>>> store
<class 'pandas.io.pytables.HDFStore'>
File path: test.h5
Empty

使用 h5py 读取刚刚创建的文件时我没有遇到任何问题:
h5_back = h5py.File('test.h5', 'r')
h5_back['/zeros']
<HDF5 dataset "zeros": shape (3, 5), type "<f4">

使用这些版本:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

pd.__version__
'0.16.2'
h5py.__version__
'2.5.0'

提前谢谢了,
玛莎

最佳答案

我在 pytables 上做了一些工作。 pandas.io 中的模块据我所知, Pandas 与 HDF 文件的交互仅限于 Pandas 理解的特定结构。要查看这些外观,您可以尝试

import pandas as pd
import numpy as np
pd.Series(np.zeros((3,5),dtype=np.float32).to_hdf('test.h5','test')

如果您在 HDFView 中打开“test.h5” ,您将看到一条路径 /test包含重新创建 DataFrame 所需的 4 个项目.

HDFView of test.h5

所以我认为读取 NumPy 数组的唯一选择是直接读取它们,然后将它们转换为 Pandas 对象。

关于python - Pandas 无法读取使用 h5py 创建的 hdf5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51139899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com