Pandas 数据帧查询 Python

Pandas DataFrame Query Python

我正在尝试查询数据框的值。我的数据包含 6 列 G-p1、G-p2、G-c、H-p1、H-p2、H-c。所有列的值都是 'left' 或 'right',因为它们代表 parent/child 是左手基因型还是右手基因型或惯用手。我想查询 parents 和 child 左手习惯的值。我试过:

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

反引号``用于指定列名。