前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python常用函数】一文让你彻底掌握Python中的query函数

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

作者头像
阿黎逸阳
发布2024-06-18 15:27:58
3590
发布2024-06-18 15:27:58
举报

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

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

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

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

一、query函数定义

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

参数详解:

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

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

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

代码语言:javascript
复制
二、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 实例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”模块相关文章。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档