Pandas 数据框 - 是什么原因导致此错误?

问题描述 投票:0回答:2

我的代码:

frame = pd.DataFrame({'a': np.random.randn(100)})
store = pd.HDFStore('mydata.h5')
store['obj1'] = frame
store['obj1_col'] = frame['a']
store.put('obj2',frame,foramt='table')
store.select('obj2',where=['index >= 10 and index <= 15'])

给出此错误消息:

TypeError: cannot pass a where specification when reading from 
a Fixed format store. this store must be selected in its entirety

如果每段代码都是正确的,为什么这段代码会给出这个错误?以后如何避免类似的错误?

python pandas hdf5
2个回答
0
投票

(我想发表评论,但由于声誉我还不能发表......)

你好,这很有趣——出于某种原因它可以在我的机器上运行。为了完整起见,我附上了代码(添加了导入)。

import pandas as pd
import numpy as np
frame = pd.DataFrame({'a': np.random.randn(100)})
store = pd.HDFStore('mydata.h5')
store['obj1'] = frame
store['obj1_col'] = frame['a']
store.put('obj2',frame,format='table')
store.select('obj2',where=['index >= 10 and index <= 15'])

退货

a
10  -0.049168
11  0.130048
12  -1.553641
13  -0.978392
14  0.723070
15  0.066814

您能否提及您正在使用的库的版本?我想知道我们是否可能有不同版本的库。 我有

import tables
import sys
print(sys.version) # 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0]
print(pd.__version__) # 1.5.0
print(np.__version__) # 1.23.3
print(tables.__version__) # 3.8.0 ... (this one is dependency)

澄清一下——我怀疑它可能与

pytables
版本有关,如本节所述,可能是相关的答案

您可以尝试升级

pytables
(例如通过
pip install --upgrade tables
)并再次运行吗?


0
投票

原因是您之前清除了系统中的变量,如下所示:

导入系统 sys.modules[name].dict.clear()

解决方案:打开一个新文件并复制粘贴之前的内容

© www.soinside.com 2019 - 2024. All rights reserved.