【Python常用函数】一文让你彻底掌握Python中的query函数

文摘   教育   2024-06-16 17:05   广东  

在Pandas中,query是一个功能强大的方法,允许使用类似SQL的表达式来筛选DataFrame。

这个方法可以极大地简化基于条件的数据筛选操作。

本文和你一起来探索query函数,让你以最短的时间明白这个函数的原理。

也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

本文目录
  1. query函数定义

  2. query函数实例

    2.1 实例1

    2.2 实例2


、query函数定义
在数据框处理中,经常需要运用一些条件对数据框进行筛选,query常用于该操作。
其基本调用语法如下:
query(expr, inplace=False, **kwargs)

参数详解:

expr:必传参数,用于筛选DataFrame的表达式

inplace:布尔值,默认为False。如果为True,则直接在原始DataFrame上进行修改。

**kwargs:用于指定eval函数的额外关键字参数。在大多数情况下,不需要直接设置。

二、query函数实例

1   实例1

首先生成一个含有A和B两列的数据框,具体代码如下:

import pandas as pd    data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}  df = pd.DataFrame(data)display(df)
得到结果:

接着用query函数筛选满足条件的行,具体代码如下:
# 选择 A 列大于 1 且 B 列小于 7 的行  result = df.query('A > 1 and B < 7')display(result)
得到结果:

可以发现这种方法可以快速筛选我们想要的数据。
有时我们可能想在查询中使用变量,这时需要用@符号进行标识,具体代码如下:
a_value = 1 b_value = 7  result2 = df.query('A > @a_value and B < @b_value')display(result2)
得到结果:
上面的筛选条件比较简单,有时需要使用复杂表达式,我们来看下具体代码:
result3 = df.query('A * 3 > B')display(result3)
得到结果:

可以发现,Python中有效的复杂表达式,也可以在query函数中执行。
为了大家对这个函数有一个更清晰的认知,我们再来看一个实例。


  实例2

首先导入Pandas库并创建一个DataFrame,具体代码如下:

import pandas as pd    # 创建一个示例 DataFrame  data = {      'Name': ['Alice', 'Bob', 'Charlie', 'David'],      'Age': [25, 30, 35, 40],      '性别': ['女', '男', '男', '男'],      'Salary': [50000, 60000, 70000, 80000]  }  df = pd.DataFrame(data)  display(df)
得到结果:

接着用query函数筛选年龄大于30的行,具体代码如下:
# 筛选年龄大于 30 的行  filtered_df1 = df.query('Age > 30')  display(filtered_df1)
得到结果:

之前筛选的列名都是英文的,最后我们对中文列名进行筛选。
接下来用三种不同的写法筛选性别为男性的行,第一种代码如下:
filtered_df2 = df.query("性别 == '男'")  display(filtered_df2)
得到结果:

第二种代码如下:
Gender = '男' filtered_df3 = df.query('性别 == @Gender')  display(filtered_df3)
得到结果:

第三种代码如下:

filtered_df4 = df.query('性别 == "男"')  display(filtered_df4)
得到结果:

从结果知,不管是中文列名还是英文列名,都可以顺利地用query函数进行条件筛选。

至此,Python中的query函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。

【部分群限时免费进分群讨论学习Python、玩转Python、风控建模【29.9元进】、人工智能、数据分析相关问题,还提供练习数据资料招聘内推信息、优秀文章、学习视频、公众号文章答疑,也可交流工作中遇到的难题。如需添加微信号19967879837,加时备注想进的群,比如学习python。

往期回顾:
一文弄懂随机森林的原理和应用

一文囊括Python中的函数,持续更新。。。

一文囊括Python中的有趣案例,持续更新。。。

【评分卡实现】应用Python中的toad.ScoreCard函数实现评分卡

【Python常用函数】一文让你彻底掌握Python中的toad.quality函数

【Python数据挖掘】应用toad包中的KS_bucket函数统计好坏样本率、KS值



限时免费进群

19967879837

添加微信号、手机号

阿黎逸阳的代码
阿黎逸阳,分享大数据和人工智能领域知识,提供风控建模干货经验。 博主履历:世界五百强公司、互联网上市公司、高校、外资银行,多年研究大数据分析、建模以及教学工作。
 最新文章