最开始表明我的理解:
pd.iloc[行号,列号]
pd.loc[行标签,列标签]
iloc是基于索引位来选取数据集,行号和列号都是从0开始数,而且还是前开后闭,比如iloc[:3]则是选取前三行0,1,2三行数据。
loc是基于标签进行选取。闭区间,loc[:3]表明取到3,如果是从0开始的标签,则取0,1,2,3总共4行数据。
下面给出相应代码和运行结果
首先给出一串数据
import pandas as pd
rowdata={
'电影名称':['无问西东','后来的我们','前任3','红海行动','唐人街探案','战狼2'],
'打斗镜头':[1,5,12,108,112,115],
'接吻镜头':[101,89,97,5,9,8],
'电影类型':['爱情片','爱情片','爱情片','动作片','动作片','动作片']}
a=pd.DataFrame(rowdata)
a
显示如下
下面为两个函数对比
1.
iloc选取的是第0行数据,loc选取的是行标签为0的数据。
2.
iloc选取第0行第0列元素值
loc按同种方法选取第一个元素值错误,是因为没有为“0”值的列标签,将列标签改为“电影名称”,如下所示,则可以正常选取。
3.
选取第二列“打斗镜头”数据,iloc与loc函数操作分别如下
4.
iloc选取前三行,前一列数据
loc取行到标签为3的4行数据,并且取列到“打斗镜头”的两行数据。
5.
还有一个需要注意的地方,iloc中含有-1的用法,在loc中不会出现-1的这种用法。具体iloc中含-1的使用方法及结果如下:
iloc[n,-1]是选取的第n行最后一个元素(从0开始)
下面例子的可以自己总结经验iloc[:,n:-1]