gpt4 book ai didi

python - 如何为 hdf5 正确使用 Pandas 迭代器?

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:03 24 4
gpt4 key购买 nike

我有一个 HDF5 文件,我只是想以 block 的形式读取数据并输出到 mySQL 表。

使用 pandas v. 0.12.0代码看起来像,

iter = store.select('data',iterator=True, chunksize=5000)
for data in iter:
# write the data out

但我得到一个异常(exception):

for data in iter:
File "d:\python27\lib\site-packages\pandas\io\pytables.py", line 969, in __iter__
v = self.func(current, stop)
File "d:\python27\lib\site-packages\pandas\io\pytables.py", line 451, in func
return s.read(where=where, start=_start, stop=_stop, columns=columns, **kwargs)
File "d:\python27\lib\site-packages\pandas\io\pytables.py", line 3175, in read

mgr = BlockManager([block], [cols_, index_])
File "d:\python27\lib\site-packages\pandas\core\internals.py", line 1001, in __init__
self._verify_integrity()
File "d:\python27\lib\site-packages\pandas\core\internals.py", line 1239, in _verify_integrity
construction_error(tot_items,block.values.shape[1:],self.axes)
File "d:\python27\lib\site-packages\pandas\core\internals.py", line 2216, in construction_error
tuple(map(int, [len(ax) for ax in axes]))))
ValueError: Shape of passed values is (1, 5000), indices imply (1, 3751044)

我不明白错误在说什么,ValueError: Shape of passed values is (1, 5000), indices imply (1, 3751044)。而且我不知道如何让它开心。

我认为 chunksize=5000 值会告诉 pandas 读取 5000 行 block 中的数据,但显然它不喜欢这样进行迭代。 select(chunksize=XXXX) 的正确用法是什么?

最佳答案

我讨厌回答我自己的问题,但为了帮助以后可能遇到同样问题的其他人,我在这里。

正如 Jeff 提到的,磁盘上的 PyTables HDF5 文件中没有 pandas 元数据。所以我做了什么:

h5file = tables.open_file(file, mode="r")
signal_data = h5file.root.signal_data
data_frame = pd.DataFrame.from_records(signal_data)

现在我可以根据需要在 Pandas 中操作 data_frame。

感谢Jeff寻求帮助。

关于python - 如何为 hdf5 正确使用 Pandas 迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27196917/

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