Python 查询数据帧:如何使用先前定义的字符串变量进行筛选?

Python 查询数据帧:如何使用先前定义的字符串变量进行筛选?,python,pandas,Python,Pandas,我有一个熊猫数据框,其中有一列名为“Colors”。我正在尝试使用pd.query查询表,以便通过使用我预定义的变量,仅获取以红色作为颜色的行: filtered_color = "red" 这项工作: df.query('Colors == ["red"]') 但是,当我尝试引用变量时: df.query('Colors == filtered_color') 我得到一个错误: UndefinedVariableError: name 'filtered_color' is not de

我有一个熊猫数据框,其中有一列名为“Colors”。我正在尝试使用pd.query查询表,以便通过使用我预定义的变量,仅获取以红色作为颜色的行:

filtered_color = "red"
这项工作:

df.query('Colors == ["red"]')
但是,当我尝试引用变量时:

df.query('Colors == filtered_color')
我得到一个错误:

UndefinedVariableError: name 'filtered_color' is not defined

如何引用查询中的变量?

使用
@
符号在查询中引用变量

df.query('Colors=={}.format(filtered_color))
,这将替换
filtered_color
的值,而不是字符串
filtered_color
相关问题:此语法的逻辑是什么?它是pandas的查询功能所独有的吗?是的,它是特定于查询语法的。不要将其用于其他操作。至于它的起源,我使用过的大多数数据库系统都使用@来指定变量,所以我猜熊猫借用了这种熟悉的语法。