在python中使用查询时出现的问题
这是我的数据在python中使用查询时出现的问题,python,python-3.x,pandas,Python,Python 3.x,Pandas,这是我的数据 cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'], 'Price': [22000,25000,27000,35000] } df = pd.DataFrame(cars, columns = ['Brand', 'Price']) 我想通过pandas query使用I输入要过滤的数据 当这起作用时- i = 'Honda Civic'
cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],
'Price': [22000,25000,27000,35000]
}
df = pd.DataFrame(cars, columns = ['Brand', 'Price'])
我想通过pandas query使用I
输入要过滤的数据
当这起作用时-
i = 'Honda Civic'
df[df['Brand'] == i]
然而,如果我尝试通过如下所示的查询来实现,它将不起作用-
i = 'Honda Civic'
(df
.query('Brand' == i))
我应该如何修改查询命令以使其正常工作?我总是喜欢:
df[df['Brand'] == i]
这对我来说容易得多,我尽量避免使用数据帧的“查询”方法。尤其是因为您可以扩展生成的数据帧切片。例如,如果您有其他列,如“State”和“Price”,则可以按如下方式进行groupby+聚合:
df[df['Brand'] == i].groupby('State')['Price'].sum()
尝试了这个
(df.query('Brand'=@i)
-没问题:df.query('Brand==@i”)
删除Brand
周围的引号这是我的代码i=['Honda Civic'](df.query('Brand==@i))
。我仍然得到无效的语法错误:(我刚刚做了一个编辑。看看以前的评论。df.query(“Brand=@i”)
。如果只是一个项目,则无需将其包装在列表中。完成,立即生效