Python学习笔记 - loc和iloc的用法与区别
如果我要查看全部数据,则直接输入df
如果我们要看表头,那就输入:
df.columns
pandas索引
dataframe的索引中,有三个函数可以用于选择数据
loc(): 使用index来选择数据 (based indexing)
iloc():使用整数索引来选择数据 (positional indexing)
ix(): iloc()和loc()的混合 (已废弃,不推荐使用)
首先介绍loc()
语法:
loc [ : , ]
一般逗号左边是用来索引行,逗号的右边用来索引列
一般逗号的左边都是数字,右边则为“列名”,也可以是bool
索引单列语法:
df.loc[:,"列名"]
这样就会输出所有的这一列的数据
索引多列语法:
df.loc[:,[ "列名1", "列名2", "列名3" ]]
这样就会输出多行数据
索引限定行语法:
数字也可以放入loc中当做索引,但是这时数字指的是标签而不是位置
比如df.loc[数字:数字]所输出的是编程排序里0-9的,也就是ID从1-10的行
df.loc[:数字,[ "列名1", "列名2", "列名3" ]]
df.loc[数字:数字,[ "列名1", "列名2", "列名3" ]]
另外,在我们进行索引的时候,就像python中的切片一样,如果是针对行的索引,那么后边的:, 是可以省略不写的。
还有一种玩法,就是利用loc函数,根据某个数据来提取数据所在的行
举个例子:
然后,我们来看看.iloc, .iloc 是基于integer 和bool的切片,不接受string。
基础语法:
iloc [ : , : ]
跟loc一样,iloc逗号左边是用来索引行,逗号的右边用来索引列
一般逗号的左右都是数字
与.loc不同的是,.iloc里面的数字指的是位置,所以遵从我们切片器的规则,包头不包尾。( [1:5] 的意思就是,从第二个到第四个,因为包1不包5)
用法:
df.iloc[:4] 代表索引前4行 (编程里的排序0,1,2,3,ID为1,2,3,4)
df.iloc[4] 代表索引第5行 (编程里的排序0,1,2,3,4的4代表ID5)
df.iloc[1:5, 2:4] 代表索引2-5行,3-4列(编程里排序的1234,也就是ID2345; 编程里排序的23,也就是第三第四列)
我们还可以通过输入df.dtypes 来看看文档的数据类型
也可以通过df.列名.unique 来看看这一列存在的unique值
另外,df.groupby(['列名‘]).size()可以帮我们查看列里面的variable出现的个数