‘ОБРАТНЫЙ переход_В КАВЫЧКАХ_STRING__AT_key’ не определен для функции запроса Pandas

#python #python-3.x #pandas #function #numpy

#python #python-3.x #pandas #функция #numpy

Вопрос:

Пытаюсь получить доступ к функции pd.query

Получение ошибки

Ошибка UndefinedVariableError: имя ‘ОБРАТНАЯ ПРИВЯЗКА_СТРОКА__В_КАВЫЧКАХ__По_ключу’ не определено

для приведенного ниже кода Pandas на 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")
  

Ответ №1:

Попробуйте это :

 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}")
  

Комментарии:

1. потрясающая попытка решения

Ответ №2:

вероятно, вам действительно нужно заменить в значениях key и value … вы можете сделать это с f строкой в python3

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

в более старых версиях python вам нужно было бы сделать

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

Комментарии:

1. Ошибка по-прежнему сохраняется