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

 更新时间:2022年05月11日 11:55:11   作者:Morcjy  
loc和iloc都是pandas工具中定位某一行的函数,下面这篇文章主要给大家介绍了关于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

由于未给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的区别、联系和用法的文章就介绍到这了,更多相关Python .iloc与.loc用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现批量修改xml文件的脚本

    Python实现批量修改xml文件的脚本

    这篇文章主要为大家详细介绍了如何通过Python实现批量修改xml文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-11-11
  • 如何利用Python将html转为pdf、word文件

    如何利用Python将html转为pdf、word文件

    网络上存在很多将HTML转换为PDF的软件和工具,但是大家都知道收费,所以下面这篇文章主要给大家介绍了关于如何利用Python将html转为pdf、word文件的相关资料,文中通过示例代码介绍介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Python自定义主从分布式架构实例分析

    Python自定义主从分布式架构实例分析

    这篇文章主要介绍了Python自定义主从分布式架构,结合实例形式分析了主从分布式架构的结构、原理与具体的代码实现技巧,需要的朋友可以参考下
    2016-09-09
  • python 表达式和语句及for、while循环练习实例

    python 表达式和语句及for、while循环练习实例

    下面小编就为大家带来一篇python 表达式和语句及for、while循环练习实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Python实现图像去雾效果的示例代码

    Python实现图像去雾效果的示例代码

    本文将利用《bringing old photos back to life》 的开源代码,并在此基础上进行修改,从而实现图像去雾的效果,感兴趣的小伙伴可以学习一下
    2022-02-02
  • python常用模块详解

    python常用模块详解

    今天小编就为大家分享一篇关于举例讲解Python常用模块,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2021-10-10
  • Python multiprocessing.Manager介绍和实例(进程间共享数据)

    Python multiprocessing.Manager介绍和实例(进程间共享数据)

    这篇文章主要介绍了Python multiprocessing.Manager介绍和实例(进程间共享数据),本文介绍了Manager的dict、list使用例子,同时介绍了namespace对象,需要的朋友可以参考下
    2014-11-11
  • Python入门教程(二十四)Python的迭代器

    Python入门教程(二十四)Python的迭代器

    这篇文章主要介绍了Python入门教程(二十四)Python的迭代器,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • 利用python GDAL库读写geotiff格式的遥感影像方法

    利用python GDAL库读写geotiff格式的遥感影像方法

    今天小编就为大家分享一篇利用python GDAL库读写geotiff格式的遥感影像方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python集成开发环境Pycharm的使用及技巧

    Python集成开发环境Pycharm的使用及技巧

    本文详细讲解了Python集成开发环境Pycharm的使用及技巧,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论