pandas.DataFrame.query(self, expr, inplace = False, **kwargs)
1. 作用:
- 使用布尔表达式查询DataFrame的列,也就是按照DataFrame中某列的规则进行过滤操作
2. 参数:
- expr:
- 要评估的查询字符串;
- 可以在环境中引用变量,在变量前面加上@字符(@a+b);
- 也可以通过在反引号中将空格或运算符括起来来引用它们
- inplace=False:查询是应该修改数据还是返回修改后的副本
- kwargs:dict关键字参数
3. 返回值类型:
- DataFrame,由提供的查询表达式产生的DataFrame
4. 举例:
生成数据:
import pandas as pd import numpy as np df = pd.DataFrame({ 'A': range(1,6), 'B': range(10, 0, -2), 'C C': 2 }) print(df)
output:
A B C C
0 1 10 2
1 2 8 2
2 3 6 2
3 4 4 2
4 5 2 2
4.1 查询B列中数值为2的行记录
print(df.query('B == 2'))
output:
A B C C
4 5 2 2
4.2 查询A列数值小于B列的行记录
print(df.query('A < B')) # 等价于 print(df[df.A < df.B])
output:
A B C C
0 1 10 2
1 2 8 2
2 3 6 2
4.3 查询B列数值和C C列相等的行记录
注:对于名称中带有空格的列名,python2可以用反引号引用,但是python3已经取消了,所以可以用下面的方法
print(df[df.B == df['C C']])
output:
A B C C
4 5 2 2
参考链接:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html