【发布时间】:2015-06-12 09:50:47
【问题描述】:
我有以下 DataFrame,它作为一个名为 data 的 frame_table 存储在 HDFStore 对象中:
shipmentid qty
catid 1 2 3 4 5
0 0 0 0 0 0 0
1 1 0 0 0 2 0
2 2 2 0 0 0 0
3 3 0 4 0 0 0
0 0 0 0 0 0 0
我想做store.select('data','shipmentid==2'),但我收到'shipmentid'未定义的错误:
ValueError: The passed where expression: shipmentid==2
contains an invalid variable reference
all of the variable refrences must be a reference to
an axis (e.g. 'index' or 'columns'), or a data_column
The currently defined references are: columns,index
编写此选择语句的正确方法是什么?
编辑:添加示例代码
import pandas as pd
from pandas import *
import random
def createFrame():
data = {
('shipmentid',''):{1:1,2:2,3:3},
('qty',1):{1:5,2:5,3:5},
('qty',2):{1:6,2:6,3:6},
('qty',3):{1:7,2:7,3:7}
}
frame = pd.DataFrame(data)
return frame
def createStore():
store = pd.HDFStore('sample.h5',format='table')
return store
frame = createFrame()
print(frame)
print('\n')
print(frame.info())
store = createStore()
store.put('data',frame,format='t')
print('\n')
print(store)
results = store.select('data','shipmentid == 2')
store.close()
【问题讨论】: