如何使用query()方法查询Pandas数据框?
如何使用query()方法查询Pandas数据框?
介绍
如果您一直在使用pandas进行数据分析,但还不知道Pandas查询方法,那么您并不孤单。查询方法直观、清晰,并且比从DataFrame中筛选行的传统方法更简洁。但是,出于某种原因,尽管其简单性,Pandas查询方法仍未被广泛使用。
因此,在本文中,我们将向您介绍Pandas查询方法和语法,并提供示例,以便您可以立即开始使用它。
您可以从GitHub上访问本文的完整代码。
最初发表于2022年10月18日的pythonsimplifed.com。
Pandas查询方法
Pandas的查询方法(df.query()
)用于查询DataFrame列并仅过滤所需的行。
从DataFrame中筛选行最常用的方法是布尔索引和位置索引方法。请参考下面的示例,了解我所说的布尔索引和位置索引的含义。我们将使用Seaborn库中的tips数据集进行示例。
import pandas as pdimport seaborn as snsdf = sns.load_dataset('tips')
如果我们只想选择满足两个条件的行——非吸烟者(smoker=’No’)和女性,则使用布尔索引和位置索引,我们可以编写以下代码。
# 布尔索引df[ (df['smoker']=='No') & (df['sex'] =='Female') ]# 位置索引,使用.loc[]和.iloc[]df.loc[(df['smoker'] == 'No') & (df['sex'] == 'Female')]
但是,上述代码也可以使用查询方法重写,如下所示。正如您所看到的,尽管其直观、清晰和简洁,查询方法经常被pandas用户忽视。在下一节中,让我们详细了解查询方法。
df.query('smoker == "No" & sex=="Female"')
语法
查询方法的语法如下所示:
DataFrame.query(expr, inplace=False, **kwargs)
- expr — 表达式/条件,用于筛选…