如何解决在Pandas.query方法中赋予AND和OR运算符优先权?
我有以下玩具数据框:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。