最近接触到数据科学,需要对一些数据表进行分析,观察到代码中一会出现loc一会又出现iloc,下面对两者的用法给出我的一些理解。

1.联系

(1)操作对象相同:loc和iloc都是对DataFrame类型进行操作;

(2)完成目的相同:二者都是用于选取DataFrame中对应行或列中的元素。

2.区别

loc和iloc索引的行列标签类型不同。

iloc使用顺序数字来索引数据,而不能使用字符型的标签来索引数据;注意:这里的顺序数字是指从0开始计数!

loc使用实际设置的索引来索引数据。但行列名为数字时,loc也可以索引数字,但这里的数字不一定从0开始编号,是对应具体行列名的数字!

3.用法

下面用代码来讲解两者的用法。

3.1行列全为从0开始顺序编号

import pandas as pd
import numpy as npa = np.arange(12).reshape(3,4)
#将a转化为DataFrame类型
df = pd.DataFrame(a)
#展示df
df

由于未给df的行列命名,默认从0开始编号,所以这个时候使用loc和iloc结果是一样的。

索引为一个数,默认输出行
print(df.loc[0])#输出第0行元素
print(df.iloc[0])#输出第0行元素

两者输出结果都为:

0    0
1    1
2    2
3    3
Name: 0, dtype: int32

输出结果为df第0行元素,结果中第一列表示列名,第二列表示具体的值。如果只需要输出某一列,输入df.loc[:,0]表示输出第0列。

如果需要输出第0到2列的数据。

#方式1
df.loc[:,0:2]#可把loc理解为遍历字符串类型,0:2则表示标签为0,1,2三列
#方式2
df.iloc[:,0:3]#iloc遍历的数数字,python中0:3对应0,1,和2

输出结果均为:

3.2有一行或列不是从0顺序编号

#把行标签换成其他数字编号
df.index=[2,5,7]
df.loc[2]

此时df变为:

输出结果为:

0    0
1    1
2    2
3    3
Name: 2, dtype: int32

输出结果对应的是列标签为“2”所在的行。

我们继续用df.iloc[2]输出结果:

0     8
1     9
2    10
3    11
Name: 7, dtype: int32

可见输出的是第2行的数据。

在这里我们能大概对loc和iloc的用法有了一定的了解。

3.3行或者列为非数字标签

#把行标签转化为非数字类型
df.index=['a','b','c']
#输出第a、b行,第0到2列的数据
#方式1
df.loc[['a','b'],0:2]#可把loc理解为遍历字符串类型,0:2则表示标签为0,1,2三列
#方式2
df.iloc[0:2,0:3]#iloc遍历的是数字,0:2表示的是0和1,0:3表示0,1,2。

两者输出结果均为:

3.4 其他用法

一般情况下,表的行为从0编号的数字类型,列为具体的字符串类型。行的数字容易确定,列的列名容易确定。

#将行换成0 1 2编号
df.index=[0,1,2]
#列标签换成A B C D
df.columns=['A','B','C','D']
df.iloc[1]['A']#实现输出第1行第A列的数据

输出结果为4。

如果要输出第1行,第AB列,使用df.iloc[1][['A','B']],这里一定要注意'A','B'是作为一个列表输入的,右侧一共有两个中括号。

输出结果:

A    4
B    5
Name: 1, dtype: int32

df.iloc[1][['A','B']]等价于df.iloc[1,0:2],但是很多情况下我们不知道具体列名对应的数字,所以采用第一种方法可以提高编程效率。

Python学习.iloc和.loc区别、联系与用法相关推荐

  1. python中iloc和loc的用法

    python中iloc和loc的用法 loc:标签索引 iloc:位置索引 近期学习到了loc和iloc的切片用法,发现用法实在是很多,所以用一个简单的例子进行总结用法,期间也借鉴了大量笔记,如果有错 ...

  2. python中iloc和loc函数区别_iloc与loc区别

    iloc PK loc 导入numpy,pandas import numpy as np import pandas as pd1 2 构建一个0,30左闭右开的偶数数组 data=np.arang ...

  3. iloc和loc区别和应用总结

    在python进行人工智能编程中,对于DataFrame类型数据的操作和表达,经常用loc和iloc两种函数从数据集中取数,但经常会发生混淆,因此根据详细比较结果,分享一篇心得. 目录 一.构建Dat ...

  4. python的iloc与loc函数

    Pandas库中有iloc和loc以及ix可以用来索引数据,抽取数据.但是方法一多也容易造成混淆.下面将一一来结合代码说清其中的区别. 1. iloc和loc的区别: iloc主要使用数字来索引数据, ...

  5. iloc与loc区别

    iloc PK loc 导入numpy,pandas import numpy as np import pandas as pd 构建一个0,30左闭右开的偶数数组 data=np.arange(0 ...

  6. python中iloc与loc的区别

    loc和iloc都是pandas工具中定位某一行的函数,loc是location的意思,而iloc中的 i 指的是Integer,二者的区别如下: loc:通过行标签名称索引行数据 iloc:通过行号 ...

  7. python中iloc、loc的使用

    iloc 定义:iloc索引器,用于按位置进行基于整数位置的索引或选择(下标) 语法:df.iloc[row selection,column selection] 可选择单行单列或多行多列 选择单行 ...

  8. python学习之xpath使用案例总结_xPath 用法总结整理

    最近在研究kafka,看了一堆理论的东西,想动手实践一些东西,奈何手上的数据比较少,突发奇想就打算写个爬虫去抓一些数据来玩,顺便把深入一下爬虫技术. 之前写过一些小爬虫,一般就是用python的req ...

  9. Python学习:关键字global和nonlocal的用法说明

    一.global global关键字用来在函数或其他局部作用域中使用全局变量. 1.1 如果局部要对全局变量修改,而不使用global关键字. count = 0 def global_test(): ...

最新文章

  1. flask部署pytorch
  2. python整数池_【Python】Python中神奇的小整数对象池和大整数对象池
  3. Federated learning论文修改2021-11-14(X-Y Liang)
  4. android 编译 sdl,SDL编译 - Android本地视频播放器开发_Linux编程_Linux公社-Linux系统门户网站...
  5. 【出版直播】博客园征途系列,《设计模式——基于C#的工程化实现及扩展》定价修改...
  6. c语言#include后的尖括号和双引号有什么区别
  7. knn算法python代码识别手写数字_python使用KNN算法识别手写数字
  8. C语言-顺序栈的基本操作
  9. 数据建模讲解和案例分析
  10. 后端工程师需要学习的前端知识——JS(一)
  11. 2020iPS细胞研究进展综述
  12. 老毛挑U盘系统工具——ghost系统安装教程
  13. win10亮度_Win10玩游戏优化设置教程,八大游戏优化设置,让游戏体验更佳
  14. python 几何教学_GEE学习笔记 八十三:【GEE之Python版教程十三】几何图形
  15. 【网络安全培训】无线局域网的安全威胁都有哪些?
  16. STM32F407使用USB作虚拟串口出现黄感叹号
  17. 10个免费的响应式布局HTML5+CSS3模板
  18. Python入门到放弃系列一
  19. 软件设计师:01-计算机组成原理与体系结构
  20. 数百亿次暴力破解和网络钓鱼攻击被微软去年拦截了

热门文章

  1. 【步兵 cocos2dx】热更新(上)
  2. c# 清除IE Cookies + 缓存
  3. 使用nbsp;class-dump-znbsp;分析支付宝nbsp;App
  4. Spring Boot 整合 springfox-swagger 3.0.0
  5. 数据库还原失败,WITH MOVE 子句可用于重新定位一个或多个文件
  6. Struts2项目实例
  7. 嵌入式开发 | 软件项目中 Debug 和 Release 版本的差异
  8. Yapi集成idea使用
  9. 进销存系统_系统介绍核心模块划分功能流程介绍(1)
  10. javascript取随机数_JavaScript中几种获取随机数的方法