Python – 用Pandas.query()方法过滤数据

Python – 用Pandas.query()方法过滤数据

Pandas是Python中非常常用的数据处理库,它可以快速处理包含大量数据的表格。其中,Pandas.query()方法可以让我们用类SQL语言的语句来进行数据过滤查询操作。

语法

语法比较简单,以DataFrame对象调用query()方法,参数为类SQL语言的查询语句,例如:

result = DataFrameObject.query('column_name >= value')

例子

下面我们以一个示例数据集为例,通过pandas.query()方法来过滤符合特定条件的数据。

首先,我们需要导入Pandas库,读取数据集并转化为DataFrame对象:

import pandas as pd

#读取数据文件,返回DataFrame对象
df = pd.read_csv('data.csv')

假设我们现在需要过滤出“Age”列在20岁以上的数据,可以使用如下的类SQL语句:

result = df.query('Age >= 20')

如果需要过滤多个条件,可以用AND、OR等逻辑运算符连接:

result = df.query('Age >= 20 and Name == "John"')

同样地,也可以使用类SQL语句的其他语法,如IN、LIKE等。

result = df.query('Name in ["John", "Mary"] and Hobby like "Ping Pong%"')

在使用类SQL语言进行数据查询时,需要注意一些小细节:

  • 如果查询语句里有引号,正确的输入方式应该是单引号包围字符串(类似’xxx’)。
  • 如果类SQL查询语句里需要用到Python中的一些保留关键字,如and、not等,需要在查询语句里加to,例如使用and应该改为使用andto。

小贴士

  1. 如果查询语句较长,可以使用括号进行分组,提高可读性。
result = df.query('(Age >= 20 or Gender == "male") and (Hobby == "Basketball" or Hobby == "Football")')
  1. query()方法还支持使用变量来代替查询语句中的某些值,这可以让代码更加灵活。
age_query = 'Age >= 20'
name_query = 'Name == "John"'

result = df.query(age_query + ' and ' + name_query)

结论

Pandas.query()方法可以让我们用类SQL语法来查询数据,它相比于函数式调用代码更加直观、简单。能够更好地给数据分析和处理带来便利。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程