python dataframe筛选,pandas中dataframe

  python dataframe筛选,pandas中dataframe

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

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

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

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

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

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

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

  importnumpyasnpimportpandasapddf=PD . data frame([2,3 ],[ 5,6 ],[ 8,9 ],index=[cobra , viper,

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

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

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

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

  df.loc[cobra , shield]

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

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

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

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

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

  根据布尔数组过滤df.loc的False,False,True]]]

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

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

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

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

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

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

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

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

  Df[shield] 6是一个返回True或False的布尔表达式。为满足某些要求,过滤逻辑为选出那些’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()支持以下类型的参数:

  一个位置整数,比如五个位置整数数组,比如[4,3,0]一个位置整数切片,比如匹配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 [[0,1]]的输出:

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

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

  选择前三行记录。

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

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

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

  因为选择了具有偶数索引值的行,所以选择了行0和2。

  本部分参考文章:https://www . w3 resource.com/pandas/data框架/数据frame-iloc.PHP

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: