Pandas DataFrame Query Python



我正在尝试查询数据帧的值。我的数据由6列G-p1、G-p2、G-c、H-1、H-2、H-c组成。所有列的值都是"左"或"右",因为它们代表父母/孩子是否具有左手或右手基因型或惯用手。我想查询父母和孩子的利手性剩下的值。我试过:

test1 = pd.DataFrame(data)
test1 = test1.query({
'H-p1': 'left',
'H-p2': 'left',
'H-c': 'left'})
train_data = test1
predict_data = test1
model.fit(test1)
predict_data = predict_data.copy()
predict_data.drop('H-p1', axis=1, inplace=True)
predict_data.drop('H-p2', axis=1, inplace=True)
predict_data.drop('H-c', axis=1, inplace=True)
pred = model.predict_probability(predict_data)
print(pred.to_string())

但我得到了这个错误:

ValueError: expr must be a string to be evaluated, <class 'dict'> given

有什么建议吗?非常感谢。

query方法接收一个字符串表达式,类似于用于loc筛选器的字符串表达式。

试试这个:

test1 = test1.query("`H-p1` == 'left' and `H-p2` == 'left' and `H-c` == 'left'")
train_data = test1

backticks``用于指定列名。

最新更新