未为查询函数定义“BACKTICK\u QUOTED\u STRING\u AT\u key”

2024-04-24 09:50:26 发布

您现在位置:Python中文网/ 问答频道 /正文

正在尝试获取pd.query函数

出错

UndefinedVariableError: name 'BACKTICK_QUOTED_STRING__AT_key' is not defined

对于下面的Python代码。我做错了什么

def ft_equal(df,key,value):
    # print(key)
    # print(value)
    # return df[df[key] == value]
    # print(key)
    # print(df[key])
    # return df.query('@key == "%s"' %value)
    return df.query('`@key` == @value')

pd.DataFrame.ft_equal = ft_equal

df.ft_equal("Current State","Disburse")

Tags: key函数namedfstringreturnvalueequal
2条回答

您可能需要实际替换keyvalue的值。。。您可以使用python3中的f字符串来实现这一点

(f'`@{key}` == @{value}') 

在较旧的python版本中,您需要执行以下操作

'`@{key}` == @{value}'.format(key=key,value=value)

试试这个:

def ft_equal(df,key,value):
    my_query = key + " == " + value
    return df.query(my_query)

def ft_equal(df,key,value):
    return df.query(f"{key} == {value}")

相关问题 更多 >