请教已经用Python中的pandas iloc写好了一段代码,建立好了一个BUTTON事件,怎么点击这个BUTTON来执行这段代码

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

码字不易,喜欢请点赞!!!

这篇主要讲解如何对pandas iloc的DataFrame进行切片包括取某行、某列、某几行、某几列、以及多重索引的取数方法。

? 选取行名、列名、值
? 以标签(行、列的名字)为索引选择数据—— x.loc[行标签,列标签]
? 以位置(第几行、第几列)为索引选择数据—— x.iloc[行位置,列位置]
? 同时根据标签和位置选择数据——x.ix[行,列]
? 选择连续的多行多列——切片

  1. 导入包并构建DataFrame二维数据

  2. 取DataFrame的某特定位置元素的方法

  3. @@首先构建一个层次化索引的DataFrame依旧是刚刚构建的DataFrame,我们将索引改为两层索引如下:
    @@根据外层索引取数:
    @@根据外层以及内层索引取数
    @@其他方法:去除层次化索引再取数

}

官方文档定义为“基于整数位置嘚索引用于按位置进行选择。”

啥意思呢意思就是iloc函数只根据行列号对数据进行切片或选择,与loc函数不同loc函数可以通过规定dataframe的列名進行选择,iloc函数则是“纯粹”按照数据位置进行数据索引参数也都是对行列号或行列号的切片或行列号的其他函数操作。

这里就按照官方给的示例捋一下iloc函数的各种索引使用方法吧


  

(1)整数作为索引:df.iloc[n],默认查找第n行

 

(2)列表作为索引:查找列表中数字对应行号的数据如,当输入[0,2]时对应查找行号为0和2的数据,而不是0-2行
 

(3)切片作为索引:实现多行数据查找
 

(4)布尔类型数据作为索引:需保持布尔类型数据与原数据数目一致True代表选择,False代表不选择
 

(5)表达式作为索引:
 
2、同时规定行和列进行索引与只按行索引类似,也有五种方式在行和列之间添加“,”分别规定行列索引范围
注意:规定的数字都是行列号,行列号均从0开始行列号为行列数-1,即第1行第1列索引應为df.iloc[0,0]

}

pandas iloc中的dataframe用起来不像R里面的那样方便比如说,对于如下一个dataframe:


  

我想把所有a列中值大于2的行的b列的值+1也就是变成这样:

如果我们直接用如下代码操作:

结果并不会报错,但昰df的结果是没有发生任何变化的因为这里实际上是对df[df.a>2]这个新的dataframe进行操作,而不是对df这就是pandas iloc没有R用得舒服的地方,所以我们得换个法子——也就是iloc:

iloc是直接对df依据位置进行操作不信试试看

但是,对于iloc根据官方文档():

目测是因为使用boolean array的返回值实际上是有4行,但是两行False的沒有被print出来所以看起来一样,但是进行编辑操作会报错(欢迎指正!)

}

我要回帖

更多关于 pandas 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信