pandas.dataframe.query() 中的模式搜索

作者:编程家 分类: pandas 时间:2025-10-13

使用pandas库中的DataFrame.query()方法可以根据特定的模式来搜索数据。这种模式搜索的功能非常强大,可以方便地筛选出满足特定条件的数据。本文将介绍DataFrame.query()方法的用法,并通过案例代码来展示其实际应用。

什么是DataFrame.query()方法

DataFrame.query()方法是pandas库中用于筛选DataFrame数据的函数。它可以通过传入一个字符串表达式作为参数,实现对DataFrame的条件筛选。query()方法的语法非常简洁、直观,使用起来非常方便。

使用DataFrame.query()方法进行条件筛选

使用DataFrame.query()方法进行条件筛选非常简单。我们只需要将筛选条件以字符串的形式传入query()方法即可。筛选条件的字符串表达式可以使用DataFrame中的列名和各种逻辑运算符进行组合。下面是一个简单的例子:

python

import pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Alex'],

'Age': [20, 25, 30, 35],

'Gender': ['Male', 'Male', 'Female', 'Male']}

df = pd.DataFrame(data)

# 使用query()方法筛选年龄小于等于25岁的数据

result = df.query('Age <= 25')

print(result)

运行以上代码,输出结果如下:

Name Age Gender

0 Tom 20 Male

1 Nick 25 Male

在上面的例子中,我们使用了query()方法筛选出了年龄小于等于25岁的数据。筛选条件`Age <= 25`中的`Age`是DataFrame中的列名,`<=`是小于等于的意思。通过运行query()方法,我们得到了满足筛选条件的数据。

使用逻辑运算符进行复杂条件筛选

除了使用简单的条件表达式,我们还可以使用逻辑运算符来进行复杂条件筛选。逻辑运算符包括`&`(与)、`|`(或)和`~`(非)。下面是一个示例:

python

import pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Alex'],

'Age': [20, 25, 30, 35],

'Gender': ['Male', 'Male', 'Female', 'Male']}

df = pd.DataFrame(data)

# 使用query()方法筛选年龄小于等于25岁且性别为男性的数据

result = df.query('Age <= 25 & Gender == "Male"')

print(result)

运行以上代码,输出结果如下:

Name Age Gender

0 Tom 20 Male

1 Nick 25 Male

在上面的例子中,我们使用了逻辑运算符`&`来连接两个筛选条件。通过这种方式,我们可以实现更加复杂的筛选条件。

使用DataFrame.query()方法的注意事项

在使用DataFrame.query()方法时,需要注意以下几点:

1. 筛选条件的字符串表达式中的列名需要与DataFrame中的列名保持一致,区分大小写。

2. 字符串表达式中的字符串值需要使用引号括例如`Gender == "Male"`。

3. 筛选条件中可以使用各种比较运算符(如`==`、`<`、`>`、`<=`、`>=`、`!=`)和逻辑运算符(如`&`、`|`、`~`)进行组合。

本文介绍了使用pandas库中的DataFrame.query()方法进行数据筛选的方法。通过传入字符串表达式作为筛选条件,我们可以方便地筛选出满足特定条件的数据。同时,我们还介绍了如何使用逻辑运算符进行复杂条件筛选。DataFrame.query()方法的强大功能为我们在数据分析和处理过程中提供了很大的便利。