问题描述
我有以下玩具数据框:
import pandas as pd
df = pd.DataFrame({'Manufacturer':['BMW','Chrysler','Buick','Toyota','Ford','Buick'],'Metric':['Indicator','Indicator','Indicator'],'Dimension':['Short','Short','Long','Long'],'User': ['USA','USA','Canada','Japan','Russia'],'Sales':[500,3000,2500,200,50,1000,9000,5000],'Expenses':[20,70,90,10,3,100,100],'Rebate':[1,26,87,14,90]
})
我有以下脚本,该脚本提示用户输入一些信息,然后返回经过过滤的输出:
user_input_sales = float(raw_input('Enter a value to filter Sales: '))
user_input_expenses = float(raw_input('Enter a value to filter Expenses: '))
user_input_rebates = float(raw_input('Enter a value to filter Rebates: '))
subset_df = df.query('Sales > @user_input_sales or Expenses > @user_input_expenses')
print(subset_df)
这很好。但是,现在我希望能够进行如下查询:
subset_df = df_query(('Sales > @user_input_sales or Expenses > @user_input_expenses')) AND ('Rebates > @ user_input_rebates')
请注意使用括号将OR和AND运算符放在优先位置。
我似乎无法(语法上)完成这项工作。 .query()方法的文档没有显示这种情况。
有人看到语法不正确的地方吗?预先感谢!
解决方法
您应该能够进行以下查询:
SortingType