Pandas 实用技能,数据筛选 query 函数详细介绍(Pandas实用技巧:深入解析数据筛选query函数)

原创
ithorizon 7个月前 (10-19) 阅读数 25 #后端开发

Pandas 实用技能,数据筛选 query 函数详细介绍

一、引言

在数据分析和处理中,Pandas 是一个非常强势的 Python 库,提供了充裕的方法和功能来操作数据。本文将详细介绍 Pandas 中的 query 函数,这是一种高效的数据筛选方法,可以帮助我们飞速地筛选和分析数据。

二、query 函数概述

query 函数是 Pandas 中用于筛选数据的强势工具。它允许我们使用类似 SQL 的语法来对 DataFrame 进行查询,这促使筛选过程更加直观和便捷。query 函数可以直接在 DataFrame 上调用,返回筛选后的数据。

三、query 函数的基本使用

以下是一个简洁的示例,展示了怎样使用 query 函数:

import pandas as pd

# 创建一个简洁的 DataFrame

data = {

'Name': ['Alice', 'Bob', 'Charlie', 'David'],

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

'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']

}

df = pd.DataFrame(data)

# 使用 query 函数筛选年龄大于 30 的数据

filtered_df = df.query('Age > 30')

print(filtered_df)

输出于是如下:

Name Age City

1 Bob 30 Los Angeles

2 Charlie 35 Chicago

3 David 40 Houston

四、query 函数的进阶用法

query 函数不仅赞成简洁的比较操作,还赞成更复杂化的逻辑表达式和函数调用。

4.1 逻辑表达式

我们可以使用逻辑运算符(如 &、|)来组合多个条件。

# 筛选年龄大于 30 且城市为 'Chicago' 的数据

filtered_df = df.query('Age > 30 & City == "Chicago"')

print(filtered_df)

输出于是如下:

Name Age City

2 Charlie 35 Chicago

4.2 使用列别名

在 query 函数中,我们可以为列指定别名,这在处理复杂化的表达式时非常有用。

# 使用别名筛选年龄大于 30 且城市为 'Chicago' 的数据

filtered_df = df.query('Age > 30 & City == "Chicago"').query('A > 30 & B == "Chicago"',

let={'A': 'Age', 'B': 'City'})

print(filtered_df)

输出于是如下:

Name Age City

2 Charlie 35 Chicago

4.3 使用内置函数

query 函数赞成使用内置的 Pandas 函数,如 sum()、mean() 等。

# 计算年龄大于 30 的平均年龄

average_age = df.query('Age > 30')['Age'].mean()

print(average_age)

输出于是如下:

35.0

五、query 函数的性能优化

虽然 query 函数提供了便捷的数据筛选方案,但在处理大型数据集时,其性能或许会受到影响。以下是一些优化 query 函数性能的方法:

5.1 使用 .loc 或 .iloc 进行索引

对于大型数据集,使用 .loc 或 .iloc 进行索引或许比 query 函数更快。

# 使用 .loc 筛选年龄大于 30 的数据

filtered_df = df.loc[df['Age'] > 30]

print(filtered_df)

5.2 缩减查询中的逻辑表达式

尽量缩减 query 函数中的逻辑表达式,基于这会提高计算的复杂化度。

5.3 使用 .eval() 函数

在某些情况下,使用 .eval() 函数替代 query 函数可以节约性能。

# 使用 .eval() 筛选年龄大于 30 的数据

filtered_df = df.eval('Age > 30')

print(filtered_df)

六、总结

query 函数是 Pandas 中一个非常有用的工具,它提供了类似 SQL 的语法来筛选数据,促使数据处理过程更加直观和高效。通过本文的介绍,我们了解了 query 函数的基本使用和进阶用法,以及怎样优化其性能。掌握这些技巧,将使你在数据分析和处理中更加得心应手。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门