在Pandas中,query是一个功能强大的方法,允许使用类似SQL的表达式来筛选DataFrame。
这个方法可以极大地简化基于条件的数据筛选操作。
本文和你一起来探索query函数,让你以最短的时间明白这个函数的原理。
也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
query函数定义
query函数实例
2.1 实例1
2.2 实例2
在数据框处理中,经常需要运用一些条件对数据框进行筛选,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 实例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中的toad.ScoreCard函数实现评分卡
【Python常用函数】一文让你彻底掌握Python中的toad.quality函数
【Python数据挖掘】应用toad包中的KS_bucket函数统计好坏样本率、KS值
限时免费进群
19967879837
添加微信号、手机号