快速学会pandas中Dataframe索引.ix,.iloc,.loc的使用以及区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速学会pandas中Dataframe索引.ix,.iloc,.loc的使用以及区别相关的知识,希望对你有一定的参考价值。


目录

 

​​pandas中索引的使用​​

​​.loc 的使用​​

​​.iloc的使用​​

​​.ix的使用​​


pandas中索引的使用

定义一个pandas的DataFrame对像

import pandas as pd
data = pd.DataFrame(A:[1,2,3],B:[4,5,6],C:[7,8,9],index=["a","b","c"])
data

A B C
a 1 4 7
b 2 5 8
c 3 6 9

.loc 的使用

.loc[],中括号里面是先行后列,以逗号分割,行和列分别是行标签和列标签,比如我要得到数字5,那么就就是:

data.loc["b","B"]

因为行标签为b,列标签为B,同理,那么4就是data[“a”,”B”] 
上面只是选择某一个值,那么如果我要选择一个区域呢,比如我要选择5,8,6,9,那么可以这样做:

data.loc[b:c,B:C]

因为选择的区域,左上角的值是5,右下角的值是9,那么这个矩形区域的值就是这两个坐标之间,也就是对应5的行标签到9的行标签,5的列标签到9的列标签,行列标签之间用逗号隔开,行标签与行标签之间,列标签与列标签之间用冒号隔开,记住,.loc是用行列标签来进行选择数据的。那么,我们会想,那我们只知道要第几行,第几列的数据呢,这该怎么办,刚好,.iloc就是干这个事的

.iloc的使用

.iloc[]与loc一样,中括号里面也是先行后列,行列标签用逗号分割,与loc不同的之处是,.iloc 是根据行数与列数来索引的,比如上面提到的得到数字5,那么用iloc来表示就是data.iloc[1,1],因为5是第2行第2列,注意索引从0开始的,同理4就是data.iloc[0,1],同样如果我们需要选择一个区域,比如我要选择5,8,6,9,那么用,iloc来选择就是

data.iloc[1:3,1:3]

因为5在第二行第二列,9在第三行第三列,注意此处区间前闭后开,所以是1:3,与loc不同的是loc前闭后闭,以及loc是根据行列标签,而.iloc是根据行数与列数

.ix的使用

.ix我发现,上面两种用法他都可以,它既可以根据行列标签又可以根据行列数,比如拿到5

data.ix[1,1]
data.ix["b","B"]

上面两种做法都可以的,同理选择一个区域

data.ix[1:3,1:3]
data.ix[b:c,B:C]

以上两种方法都是取到5,6,7,8


以上是关于快速学会pandas中Dataframe索引.ix,.iloc,.loc的使用以及区别的主要内容,如果未能解决你的问题,请参考以下文章

使用 ix() 方法对带有负索引的 pandas DataFrame 进行切片

Python/熊猫:Idx 和 ix

数据分析—学会用pandas做多层索引

Pandas选取行,列总结

python pandas.DataFrame选取修改数据最好用.loc,.iloc,.ix

pandas dataframe数据提取的方法