Python学习.iloc和.loc区别、联系与用法

这篇具有很好参考价值的文章主要介绍了Python学习.iloc和.loc区别、联系与用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近接触到数据科学,需要对一些数据表进行分析,观察到代码中一会出现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 np

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

Python学习.iloc和.loc区别、联系与用法

由于未给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

输出结果均为:

Python学习.iloc和.loc区别、联系与用法

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

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

此时df变为:

Python学习.iloc和.loc区别、联系与用法

 输出结果为:

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。

两者输出结果均为:

Python学习.iloc和.loc区别、联系与用法

 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],但是很多情况下我们不知道具体列名对应的数字,所以采用第一种方法可以提高编程效率。文章来源地址https://www.toymoban.com/news/detail-404126.html

到了这里,关于Python学习.iloc和.loc区别、联系与用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI概念之人工智能、机器学习和数据挖掘之间的联系与区别

    本文深入探讨人工智能、机器学习和数据挖掘之间的联系与区别,涵盖基础知识、工作流程、需求分析、设计方案、实现步骤、代码示例、技巧与实践、常见问题与解答等内容,旨在帮助读者全面了解这三者之间的异同,并学会如何在实际工作中运用它们。 阅读时长:约30分

    2024年03月12日
    浏览(76)
  • chatgpt赋能python:python中的iloc:介绍和基本使用方法

    在Python中,Dataframe是数据分析中最常用的数据结构。iloc是Python Pandas库中用于简化数据切片和子集操作的一种方法。 本文将介绍iloc的基础概念和基本使用方法,并且通过实际的示例来演示如何使用iloc来快速选择和操作数据集。 iloc是“integer location”的缩写,意为“整数位置

    2024年02月04日
    浏览(51)
  • 深入理解预训练(pre-learning)、微调(fine-tuning)、迁移学习(transfer learning)三者的联系与区别

    你需要搭建一个网络模型来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整参数,直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当你觉得结果很满意的时候,你就可以将训练模型的参数保存下来

    2024年02月15日
    浏览(37)
  • 深度学习基础入门篇[七]:常用归一化算法、层次归一化算法、归一化和标准化区别于联系、应用案例场景分析。

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月13日
    浏览(45)
  • 【深度学习笔记】彻底理解torch中的tensor与numpy中array区别及用法

    刚接触深度学习的同学,很多开源项目代码中, 张量tensor 与 数组array 都有使用,不清楚两者有什么区别,以及怎么使用,如何相互转换等。博主起初也有类似的疑惑,经过查阅资料以及实践,逐渐有了深入了解,本文将记录并分享自己对两者的理解,可供参考。 提示:以下

    2023年04月08日
    浏览(91)
  • Python中read()、readline()和readlines()三者间的区别和用法

    在python中读取文件常用的三种方法:read(),readline(),readlines() 假设a.txt的内容如下所示: read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象 输出结果: 从字面意思可以看出,该方法每次读出一行内容,所以,读取时

    2024年03月13日
    浏览(44)
  • openCV openGL 区别和联系

    OpenCV是 Open Source Computer Vision Library OpenGL是 Open Graphics Library 简单理解: opencv用来解析图片 , opengl用来画图 , OpenCV主要是提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如你想实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别这些都是C

    2024年02月21日
    浏览(36)
  • 架构,平台,框架的区别和联系

    1、解释说明 - 架构:在软件开发中,架构是指软件的整体设计和组织方式。它包括了软件的结构、组件和交互方式等方面的设计。架构定义了系统的高级结构和组织方式,以及各个组件之间的关系和交互方式。一个良好的架构可以提高软件的可维护性、可扩展性和性能。 -

    2024年02月10日
    浏览(32)
  • Glance、Cinder、Swift区别&联系

    提供镜像服务,它负责对镜像进行管理,例如发现、注册,镜像是产生虚拟机系统盘的模板,Glance 并不保存镜像,Glance 支持多种后端存储服务,例如 本地文件系统作为存储介质 、 Swi负( OpenStack Object Storage )作为存储介质或者 AWS S3 兼容的 API 作为存储介质以及分布式存储

    2024年02月15日
    浏览(33)
  • 程序、进程、线程的概念、区别与联系

    程序指的是一些保存在磁盘上的指令的有序集合,通常用某种程序设计语言编写,运行于某种目标计算机体系结构上。程序是静态的,就好比一个电脑上的普通文件一般,没有任何执行的概念。 进程是计算机中的软件程序关于某数据集合上的一次运行活动,用通俗的话来讲

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包