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 @   燕麦拿铁  阅读(12836)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示