python ix loc iloc_pandas中的iloc、loc、ix有什么区别?

pandas的初学者都会有一个疑惑,经常看别人的代码有iloc、loc、ix,这三个函数到底有什么区别呢?

首先,这三个都可以用来筛选行列,即filter特定的行、列或者同时选取行列,那么他们三个有什么区别呢,区别主要体现在用法上:

一.loc:根据标签(label)索引,什么是标签呢?

红框框起来的部分就是标签(label)。在这里,行标签就是我们所说的索引(index),列标签就是列名(columns)

stock.loc[0:5,['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额']]

逗号左边是要筛选的行,逗号右边是要筛选的列。我们平时做数据处理的时候,更常见的情况是选取所有行,但是只要某几列

stock.loc[:,['股票代码','股票名称','当前价','涨跌额','涨跌幅','年初至今','成交量','成交额']]

同理,选取所有列,只要某几行就有:

stock.loc[0:5,:]

小结:loc 选取特定行列的用法:行根据行标签,也就是索引筛选,列根据列标签,列名筛选

如果选取的是所有行或者所有列,可以用:代替

行标签选取的时候,两端都包含,比如[0:5]指的是0,1,2,3,4,5。

二.iloc,根据行标签的位置索引。iloc就是 integer loc 。可以理解为是在loc的基础上,用整数索引。即iloc是基于位置索引的,也就是我们常说的几行几列。还是以stock数据集为例

stock.iloc[0:6,0:8]

上面代码的是stock数据集中第0-5行,第0-7列的内容。这里需要注意的是iloc的0:X中不包括X,只能到X-1.

如果我们需要的是第0-5行,第0,3,4,5列的内容呢?

stock.iloc[0:6,[0,3,4,5]]

小结:iloc基于位置索引,简单来说,就是第几行第几列,只不过这里的行列都是从0开始的。

iloc的0:X中不包括X,只能到X-1.

三.ix相当于loc和iloc的综合版本,既可以按标签选取,又可以按位置选取。也就是说,ix可以识别你是想按照标签选取,还是按照位置选取。

接下来要用到的数据集如下,为了方便阐述ix的用法,将stock的‘股票名称’设置成了索引,也就是行标签。

stock.ix['聚力文化':'海联金汇',0:3]

#这里ix会将行按照标签选取(行选取用了loc的方式),列按照位置选取(列选取用了iloc的方式)。

stock.ix[2:5,'股票代码':'当前价']

#这里ix是将行按照位置选取(行选取用了iloc的方式),列按照标签选取(列选取用了loc的方式)。

最后的结果同上。

关于ix,它是先于iloc、和loc产生的。现在基本上用iloc和loc已经完全能取代ix,所以ix已经被官方弃用了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值