Pandas - 查询函数query

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 

posted @ 2020-06-03 16:48  燕麦拿铁  阅读(12782)  评论(0编辑  收藏  举报