Pandas条件筛选详解

一、基础条件筛选

Pandas是Python中非常常用的数据处理库,对于数据筛选和清洗也非常方便,条件筛选就是其中一项重要的功能。

当需要从DataFrame中选择满足某些条件的数据,可以使用基础条件筛选。这种筛选方式使用Boolean Indexing进行数据的选取。

import pandas as pd

#创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 35, 17, 28],
                   'sex': ['F', 'M', 'M', 'M']})

#使用条件筛选获取DF中年龄大于25岁的数据
df[df['age'] > 25]

以上代码通过Boolean indexing,实现了从DataFrame中筛选出年龄大于25岁的数据。筛选条件[df[‘age’] > 25]返回了一列布尔值,对DF进行筛选时,只选取布尔值为True的行。

二、复合条件筛选

在数据处理中,可能需要使用多个条件进行筛选。使用符号”&”、”|”、”~”实现多个条件的组合筛选。

import pandas as pd

#创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 35, 17, 28],
                   'sex': ['F', 'M', 'M', 'M']})

#使用复合条件筛选获取DF中年龄大于25岁且性别为男性的数据
df[(df['age'] > 25) & (df['sex'] == 'M')]

以上代码使用”&”进行了年龄大于25且性别为男性的复合条件筛选。根据Python运算优先级,使用圆括号括起每个条件的部分提高了代码的可读性。

三、使用isin进行多项匹配筛选

在某些情况下,需要在列表或Series中使用多项来筛选DataFrame中的数据,这时可以使用isin方法。

import pandas as pd

#创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 35, 17, 28],
                   'sex': ['F', 'M', 'M', 'M']})

#使用isin筛选DF中sex 为 F 或 M的行
df[df['sex'].isin(['F', 'M'])]

以上代码使用isin进行了多项条件的匹配,提高了代码的可读性和精简性。

四、使用query方法进行条件筛选

在某些情况下,多个筛选条件的集成可能会使代码变得非常复杂。这时可以使用query方法简化代码。

import pandas as pd

#创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 35, 17, 28],
                   'sex': ['F', 'M', 'M', 'M']})

#使用query方法筛选DF中age大于25岁或者sex为F的行
df.query("sex=='F' or age>25")

以上代码中,query方法将子字符串”sex == ‘F’ or age > 25″作为条件筛选,运行结果与使用&、|和()的几乎相同。

五、使用eval方法进行高性能筛选

当需要在DataFrame中进行高性能筛选时,Pandas提供了一个eval方法。eval方法可以将表达式字符串传递给DataFrame.eval()方法,它会使用numexpr库和覆盖的算术运算符处理表达式,以获得更快的计算结果。

import pandas as pd

#创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
                   'age': [25, 35, 17, 28],
                   'sex': ['F', 'M', 'M', 'M']})

#使用eval方法筛选DF中age大于25岁或者sex为F的行
df.eval("age > 25 or sex=='F'")

以上代码中,使用eval()方法对包含我们要筛选的表达式字符串进行操作,得到一个符合条件的Series。

结论

通过这篇文章,我们对Pandas条件筛选的基础知识、复合条件筛选、多项匹配筛选、query方法和eval方法进行了详细阐述。通过掌握这些筛选技巧,我们可以更加高效地选择和清洗数据。

原创文章,作者:HJWG,如若转载,请注明出处:https://www.506064.com/n/146727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HJWGHJWG
上一篇 2024-10-31 15:31
下一篇 2024-10-31 15:32

相关推荐

  • 条件运算符(?:)是什么意思?

    条件运算符(?:)是JavaScript中的一种特殊的运算符,也是许多编程语言中相似语法的一部分。它可以允许我们在一个简单、一行的语句中完成条件判断和赋值操作,非常方便。 1.语法…

    编程 2025-04-29
  • Django ORM如何实现或的条件查询

    在我们使用Django进行数据库操作的时候,查询条件往往不止一个,一个好的查询语句需要考虑我们的查询要求以及业务场景。在实际工作中,我们经常需要使用或的条件进行查询,本文将详细介绍…

    编程 2025-04-29
  • Pandas下载whl指南

    本篇文章将从几个方面为大家详细解答如何下载Pandas的whl文件。 一、Pandas简介 Pandas是一个基于Python的软件库,主要用于数据分析、清洗和处理。在数据处理方面…

    编程 2025-04-28
  • 素数条件Python

    本文将对素数条件Python进行详细阐述,介绍其概念、优缺点及应用场景。 一、概念 素数条件Python是一种基于Python语言的编程模式,其特点在于对于给定自然数$x$,判断其…

    编程 2025-04-27
  • Python中不满足条件重复执行的解决方法

    本文将以Python中不满足条件重复执行为中心,从多个方面进行详细阐述解决方法。 一、while循环 while循环是Python中常用的循环语句之一,它可以用于重复执行一段代码,…

    编程 2025-04-27
  • 如何在Python中安装和使用Pandas

    本文将介绍如何安装和使用Python的Pandas库 一、Pandas库的介绍 Pandas是Python的一个数据分析库,提供了许多实用的数据结构和数据分析工具,可以帮助用户轻松…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论