loc和iloc的意思
首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整数作为参数,详情见下面。
loc和iloc的区别及用法展示
1.区别
1
2
|
loc works on labels in the index. iloc works on the positions in the index (so it only takes integers). |
2.用法展示
首先创建一个dataframe:
1)loc为selection by label函数,即为按标签取数据,标签是什么,就是上面的'0'~‘4', ‘a'~‘b'。
例如第一个参数选择index,第二个参数选择column,如下图:
建议写df.loc[0, :],这样可以清楚的看出为第0行的所有记录,同样如果取第'a'列的所有记录,可以写df.loc[:, ‘a'],如下图:
:表示所有,[]里边为先行后列。
2)iloc函数为selection by position,即按位置选择数据,即第n行,第n列数据,只接受整型参数
记住,0:2为左闭右开区间,即取0,1,如下图:
若要取第一列的所有数据,则为df.iloc[:, 0],记住不接受'a'作为参数,如下图:
补充:只需一个例子帮你搞清并记住python loc和iloc
帮你区分python loc和iloc
最基本的概念loc通常用于行标签和列标签,iloc通常直接用于行序号和列序号,具体举个例子帮助大家理解。
创建一个以abcd为索引,四行三列的dataframe。
1
2
3
4
|
df = pd.dataframe({ 'number' :[ 10 , 20 , 30 , 20 ], '科目' :[ '语文' , '数学' , '英语' , '化学' ], '名称' :[ '小米' , '华为' , '苹果' , '联想' ]},index = [ 'a' , 'b' , 'c' , 'd' ]) print (df) |
结果如图所示 :
先来看loc:
1
2
3
|
print (df.loc[ 'a' : 'c' ]) print (df.loc[[ 'a' , 'c' ]]) print (df.loc[: 'c' ]) |
分别输出a行到c行;a行和c行;a行到c行。
如图所示:
还可以设置取出某几行某几列:
1
|
print (df.loc[: 'c' ,[ 'number' , '科目' ]]) |
结果如下图所示:取出a到c行的number和科目列。
如下图所示:
loc基本用法就这些。实际上iloc用法和loc差不多,但iloc不是直接取已有索引。而是默认索引就是1,2,3,4~~~
同样的我们用iloc做下上述操作。
1
2
3
|
print (df.iloc[ 0 : 3 ]) print (df.iloc[[ 0 , 2 ]]) print (df.iloc[: 3 ]) |
结果同样如上图所示:
用iloc取出a到c行的number和科目列:
1
|
print (df.iloc[ 0 : 3 ,[ 0 , 1 ]]) |
结果如下图所示:
我相信读到这里大家应该就理解了它们的用法。最后再提醒大家一下,loc不管行还是列调用的都是dataframe自身的行标签和列标签。
而iloc调用的是行[1,2,3,4~],列[1,2,3,4]。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/u014712482/article/details/85080864