广告
返回顶部
首页 > 资讯 > 精选 >利用pandas怎么实现按条件筛选数据
  • 682
分享到

利用pandas怎么实现按条件筛选数据

2023-06-06 11:06:25 682人浏览 八月长安
摘要

本篇文章给大家分享的是有关利用pandas怎么实现按条件筛选数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用布尔型DataFrame对数据进行筛选使用一个条件对数据进行筛

本篇文章给大家分享的是有关利用pandas怎么实现按条件筛选数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

使用布尔型DataFrame对数据进行筛选

使用一个条件对数据进行筛选,代码类似如下:

num_red=flags[flags['red']==1]

使用多个条件对数据进行筛选,代码类似如下:

stripes_or_bars=flags[(flags['stripes']>=1) | (flags['bars']>=1)]

常见的错误代码如下:

代码一:

stripes_or_bars=flags[flags['stripes']>=1 or flags['bars']>=1]

代码二:

stripes_or_bars=flags[flags['stripes']>=1 | flags['bars']>=1].

代码三:

stripes_or_bars=flags[(flags['stripes']>=1) or (flags['bars']>=1)]

以上这三种代码的错误提示都是:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 中括号里面的逻辑式如何解析的暂时不清楚。貌似不能使用and、or及not。

除了使用组合的逻辑表达式之外,使用返回类型为布尔型值的函数也可以达到筛选数据的效果。示例如下:

import pandas as pdimport numpy as npdf=pd.DataFrame(np.array(range(10)).reshape((5,-1)))df.columns=['0','1']df=df[df['1'].isin([3,5,9])]

 其df的结果如下:

利用pandas怎么实现按条件筛选数据

2.iloc()方法、ix()方法和iloc()方法的区别

首先dataframe一般有两种类型的索引:第一种是位置索引,即dataframe自带的从0开始的索引,这种索引叫位置索引。另一种即标签索引,这种索引是你在创建datafram时通过index关键字,或者通过其他index相关方法重新给dataframe设置的索引。这两种索引是同时存在的。一般设置了标签索引之后,就不在显示位置索引,但不意味着位置索引就不存在了。

假设有如下几行数据(截图部分只是数据的一部分),很明显,以下显示的索引为标签索引。同时574(标签索引)行对应的位置索引则为0,1593行对应的位置索引为2, 以此类推。

利用pandas怎么实现按条件筛选数据

先来看loc(),其api网址Http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.htm,函数名下方有一行解释,Access a group of rows and columns by label(s) or a boolean array.. loc[] is primarily label based, but may also be used with a boolean array. 

代码一:

first_listing = nORMalized_listings.loc[[0,4]]

结果如下,可以看出其输出的是dataframe中标签索引为0和4的两行数据。注意,如果标签索引的类型为字符串,则在loc中也要用字符串的形式。

利用pandas怎么实现按条件筛选数据

再来看iloc(),其API网址http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html,函数名下方的解释为 Purely integer-location based indexing for selection by position. .iloc[] is primarily integer position based ( from 0 to length-1 of the axis), but may also be used with a boolean array.

代码二:

first_listing = normalized_listings.iloc[[0,4]]

结果如下,可以看出其输出的dataframe中第0行和第4行的数据,即按方法是按照位置索引取得数。注意使用位置索引的时候只能用整数(integer position,bool类型除外)

利用pandas怎么实现按条件筛选数据

另外,还可以向loc和iloc中传入bool序列,这样就可以将前面介绍的boo表达式用到loc和iloc中。下面来看看怎么使用bool序列?

import pandas as pddata=pd.DataFrame(data={'col1':[1,2,3,5,10],'col2':[50,90,67,75,100]},\         index=['a','b','c','d','e'])print(data)#iloc[]示例,iloc似乎不能直接使用逻辑表达式的结果,我这里将其转置成list之后就可以用了,原因暂且不明data_1=data.iloc[list(data['col1']>5)]print(data_1)#loc[]示例,loc中可以直接使用逻辑表达式data_2=data.loc[data['col1']>5]print(data_2)

在iloc[]中,如果直接使用loc中的逻辑表达式而不进行list()转化的话,会提示ValueError: iLocation based boolean indexing cannot use an indexable as a mask错误。

如果查看上述两段代码中得到的first_listing。我们会发现两处first_listing的类型均为datafrarm。loc和iloc除了能对行进行筛选,还可以筛选列。如果在loc和iloc中设定了对列的筛选,则筛选之后得到的数据可能是datafrme类型,也有可能是Series类型。下面直接以代码运行结果进行说明。

import pandas as pddata=pd.DataFrame(data={'col1':[1,2,3,5,10],'col2':[50,90,67,75,100]},\         index=['a','b','c','d','e'])print(data)#iloc[]示例 ,在使用iloc的时候,[]里面无论是筛选行还是筛选列,都只能使用数字形式的行号或列号。#这里如果使用‘col2',这里会报错data_1=data.iloc[[0,4],[1]]#当需要筛选出多列或者希望返回的结果为DataFrame时,可以将列号用[]括起来。print(data_1)print(type(data_1))data_2=data.iloc[[0,4],1]#当只需要筛选出其中的一列时可以只写一个列号,不加中括号,这种方法得到的是一个Seriesprint(data_2)print(type(data_2))#loc[]示例data_3=data.loc[['a','e'],['col2']]print(data_3)print(type(data_3))data_4=data.loc[['a','e'],'col2']print(data_4)print(type(data_4))

具体的代码执行结果如下:

利用pandas怎么实现按条件筛选数据

最后看ix()方法,其API网址http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ix.html,其解释为 A primarily label-location based indexer, with integer position fallback.

代码三:

first_listing = normalized_listings.ix[[0,4]]

结果如下似乎与loc()方法的结果是相同的,但是从其给出的解释来看,其好像是前两个方法的集合

利用pandas怎么实现按条件筛选数据

以上就是利用pandas怎么实现按条件筛选数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 利用pandas怎么实现按条件筛选数据

本文链接: https://www.lsjlt.com/news/246540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用pandas怎么实现按条件筛选数据
    本篇文章给大家分享的是有关利用pandas怎么实现按条件筛选数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用布尔型DataFrame对数据进行筛选使用一个条件对数据进行筛...
    99+
    2023-06-06
  • Python中Pandas条件筛选功能怎么用
    这篇文章将为大家详细讲解有关Python中Pandas条件筛选功能怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、准备数据import pandas as pd&nb...
    99+
    2023-06-29
  • Pandas中怎么按日期筛选、显示及统计数据
    小编给大家分享一下Pandas中怎么按日期筛选、显示及统计数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运行环境为 windows系统,64位,python3...
    99+
    2023-06-04
  • PHP数组中怎么实现多条件筛选
    这篇文章主要介绍“PHP数组中怎么实现多条件筛选”,在日常操作中,相信很多人在PHP数组中怎么实现多条件筛选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP数组中怎么实现多条件筛选”的疑惑有所帮助!接下来...
    99+
    2023-07-06
  • python怎么筛选符合条件的数据
    在Python中,可以使用条件语句和循环来筛选符合条件的数据。以下是一些常见的方法:1. 使用if语句:可以使用if语句来判断每个数...
    99+
    2023-10-12
    python
  • JS怎么实现数组过滤从简单到多条件筛选
    本篇内容主要讲解“JS怎么实现数组过滤从简单到多条件筛选”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS怎么实现数组过滤从简单到多条件筛选”吧!目录单条件单数据筛选单条件多数据筛选多条件单数据...
    99+
    2023-06-20
  • 怎么在python中利用filter()实现筛选
    本篇文章为大家展示了怎么在python中利用filter()实现筛选,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python...
    99+
    2023-06-15
  • 怎么用Python实现数据筛选与匹配
    这篇文章给大家分享的是有关怎么用Python实现数据筛选与匹配的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据筛选要求我们在表中筛选出符合条件的数据。数据匹配需要我们在多个表之间匹配相关的数据。与之前一样,完成...
    99+
    2023-06-29
  • 怎么在JQuery中利用has()方法实现筛选
    这期内容当中小编将会给大家带来有关怎么在JQuery中利用has()方法实现筛选,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库,它具有...
    99+
    2023-06-14
  • vue怎么实现搜索筛选、降序排序数据
    这篇文章主要介绍“vue怎么实现搜索筛选、降序排序数据”,在日常操作中,相信很多人在vue怎么实现搜索筛选、降序排序数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现搜索筛选、降序排序数据”的疑...
    99+
    2023-07-04
  • mongoDB数据库中的多条件查询怎么利用Java实现
    mongoDB数据库中的多条件查询怎么利用Java实现?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。客户端代码:db.url.find({index:4,status:0,ur...
    99+
    2023-05-31
    java mongodb ava
  • php怎么实现点击按钮删除一条数据
    PHP是一种流行的服务器端编程语言,具有广泛的应用范围,其中包括将数据从数据库中删除。在本文中,我们将学习如何使用PHP编写代码来实现当用户单击按钮时,从MySQL数据库中删除数据的功能。具体实现方式如下:首先需要建立一个名为“delet&...
    99+
    2023-05-14
    php 数据库
  • 使用oracle怎么实现一对多数据分页查询筛选
    使用oracle怎么实现一对多数据分页查询筛选?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。先来看下第一次sql是如何写的查询之后在外面做...
    99+
    2022-10-18
  • Python利用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    目录1 代码分段讲解1.1 模块与路径准备1.2 栅格图像文件名读取与配对1.3 输出文件名称准备1.4 栅格文件数据与信息读取1.5 差值计算与QA波段筛选1.6 结果栅格文件写入...
    99+
    2023-02-23
    Python GDAL读取栅格数据 Python GDAL读取数据 Python GDAL Python读取栅格数据
  • mysql中怎么实现有条件插入数据
    这篇文章将为大家详细讲解有关mysql中怎么实现有条件插入数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。关键是如下的MYSQL语句, 插入多条...
    99+
    2022-10-18
  • Python如何利用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    1 代码分段讲解1.1 模块与路径准备首先,需要对用到的模块与存放栅格图像的各类路径加以准备。import os import copy import numpy as np import pylab as plt from osgeo i...
    99+
    2023-05-15
    Python gdal
  • 怎么使用Python+Pandas实现数据透视表
    这篇文章主要介绍了怎么使用Python+Pandas实现数据透视表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python+Pandas实现数据透视表文章都会有所收获,下面我们一起来看看吧。导入示例数...
    99+
    2023-07-02
  • Python怎么用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜
    这篇文章主要讲解了“Python怎么用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么用GDAL模块实现读取栅格数据并对指定...
    99+
    2023-07-06
  • 使用pandas模块怎么实现数据标准化
    本篇文章给大家分享的是有关使用pandas模块怎么实现数据标准化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如下所示:3σ 原则(u-3*σ ,u+3*σ )离差标准化(x-...
    99+
    2023-06-15
  • 怎么在Python中使用pandas实现数据分析
    怎么在Python中使用pandas实现数据分析?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、比较运算符和比较方法比较运算符用于判断是否相等和比较大小,Py...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作