python dataframe筛选

Catalog DataFrame.loc是基于单个标签的过滤器(行维度)、基于单个标签的过滤器(二维行/)和基于标签数组的过滤器)

  在介绍数据帧的数据结构时,引入了标签和位置的概念。这些概念与loc(iloc)操作相关。因此,在介绍这两个操作之前,让我们再次简要回顾一下标签和位置:

  标签为:的数据帧的列或行(索引)的名称统称为排序位置(012)的标签位置的数据帧的列或行(索引):相应地:

  Loc)数据选择基于:标签(或布尔数组)iloc)数据选择基于:位置(整数-整数)iloc) I表示整数。

  Dataframe.loc(dataframe.loc)支持以下类型的参数:

  单一标签。例如,5A(其中5不是位置的索引标签,值为5)标签的列表。比如在函数(文字)注意,上面提到的参数都是单个的,比如给出布尔数组匹配 a b c 标记切片长度的四个结果: f /列。

  在演示各种操作之前,先构建DF

  importnumpyasnpimportpandasapddf=PD . data frame([23 ][ 56 ][ 89 ]index=[cobra viper

  基于这个DF,我们来看看loc()的特殊操作。

  按单个标签过滤df.loc[viper]

  “viper”是标签名,行数据(viper56)选自放在第一维度的行数据(因为没有用逗号分隔)

  您还可以基于单个标签过滤器(/列维度)来过滤行和列维度。

  df.loc[cobra shield]

  该操作只允许筛选一个单元格,因为行限制是cobra,列限制是shield。也就是说,是3

  基于标记数组df.loc[[viper sidewinder]]

  该操作同时过滤毒蛇响尾蛇的数据。

  基于单切片的df . loc[ cobra : viper max_speed]

  这是一个行/列复合条件过滤器,用于在行维度中使用slice,从cobra行中连续选择viper行,从列维度中选择max_speed列,最终得到上图中的结果集。

  根据布尔数组过滤df.locFalseFalseTrue]]]

  这个布尔数组作用于行维度。False表示跳过且不选择。真的是物竞天择。

  如果要从行维中筛选所需的数据列,可以编写:

  df . loc[:[假,真]]输出:

  shieldcobra 3viper 6sidewinder9操作的逻辑是运算符全选,在行维度中单独选择第二列

  同样,您可以使用布尔数组在行维和列维度中进行筛选。

  df . loc[[假,假,真][假,真]]输出:

  在该操作中,仅选择第三行和第二列。

  基于函数曲面量过滤df.loc [df [shield ]6]

  Df[shield] 6是一个返回TrueFalse的布尔表达式。为满足某些要求,过滤逻辑为选出那些’shield’列的值大于6的所有的行

  一个更标准的例子是lambda表达式。

  df . loc[lambda df:df[ shield ]==9]

  这个lambda表达式(匿名函数)等价于df[shield]==9。过滤逻辑为选出那些’shield’列的值等于9的所有的行

  本节参考文章:https://www . w3 resource.com/pandas/data/数据帧-loc。服务器端编程语言(Professional Hypertext Preprocessor的缩写)

  DataFrame.iloc))了解DataFrame.loc)后,DataFrame.iloc)会变得简单,操作与DataFrame.loc)高度一致。但是,它不是基于标签,而是基于位置。同样,DataFrame.iloc()支持以下类型的参数:

  一个位置整数,比如五个位置整数数组,比如[430]一个位置整数切片,比如匹配17/列长度的布尔数组,以及上述四个中的一个。

  importnumpyasnpimportpandasapdmydict={ p :2 q: 3 r: 4 s: 5}{p: 200 .

  基于这个DF,我们来看看iloc()的特殊操作。

  基于一个位置过滤df.iloc[0]的输出:

  P 2q 3r 4s 5选择第0行的数据。

  基于定位数组过滤df.iloc [[01]]的输出:

  选择第0行和第1行的数据。

  根据定位切片过滤df.iloc[:3]的输出:

  选择前三行记录。

  根据布尔数组过滤df.iloc[[TrueFalseTrue]]的输出。

  选择第0行和第2行的数据。

  基于以下函数过滤df.iloc [lambdax: x.index %2==0]的输出:

  因为选择了具有偶数索引值的行,所以选择了行02

  

本文来自网络,不代表无忧安卓网立场,转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值