Pandas中的loc与iloc区别与用法小结

 更新时间:2024年01月17日 10:45:16   作者:独影月下酌酒  
loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)而iloc函数:通过行号来取行数据(如取第二行的数据),这篇文章介绍Pandas中的loc与iloc区别与用法,感兴趣的朋友一起看看吧

1.基本简介

1.1 loc与iloc基本含义

loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行

iloc函数:通过行号来取行数据(如取第二行的数据

注:loc是location的意思,iloc中的i是integer的意思,仅接受整数作为参数。

1.2 loc与iloc的区别

官网解释DataFrame中的loc与iloc:

Purely integer-location based indexing for selection by position. --iloc

Access a group of rows and columns by label(s) or a boolean array. --loc

二者的区别(传入参数的不同):

loc works on labels in the index.
iloc works on the positions in the index (so it only takes integers).

2.使用方法

2.0 数据准备

# 导包
import numpy as np
import pandas as pd
#创建Dataframe
data=pd.DataFrame(np.arange(25).reshape(5,5),index=list('abcde'),columns=list('ABCDE'))

2.1 使用loc与iloc提取行数据

需求:获取索引为’a’的行数据

# loc的方式
data.loc['a']
# 输出结果:
A    0
B    1
C    2
D    3
E    4
Name: a, dtype: int32
# iloc的方式:索引为a即为第一行数据
data.iloc[0]
# 输出结果:
A    0
B    1
C    2
D    3
E    4
Name: a, dtype: int32
# iloc按照切片方式处理
data.iloc[:1]

2.2 使用loc与iloc提取列数据

需求:取’A’列所有行,多取几列格式为 data.loc[:,[‘A’,‘B’]],data.iloc[:,[0,1]]

data.loc[:,['A']]

# 'A'列的数据即为第0列的数据
data.iloc[:,[0]]

2.3 使用loc与iloc提取指定行、列的数据

需求: 提取index为’a’,‘b’,列名为’A’,'B’中的数据

# 提取index为'a','b',列名为'A','B'中的数据
data.loc[['a','b'],['A','B']]

# 提取第0、1行,第0、1列中的数据
data.iloc[[0,1],[0,1]]

2.4 使用loc与iloc提取所有数据

需求:提取所有数据

data.loc[:,:]

data.iloc[:,:]

2.5 使用loc根据某个条件来提取数据所在的行

需求1:提取A列中数值为0的所在行数据

data.loc[data['A']==0]

需求2:提取A列中数字为0,且B列中数值为1所在行的数据

data.loc[(data['A']==0) & (data['B']==1)]

# 其他实现方式:
data[data['A']==0] #dataframe用法
data[data['A'].isin([0])] #isin函数
data[(data['A']==0)&(data['B']==2)] #dataframe用法
data[(data['A'].isin([0]))&(data['B'].isin([2]))] #isin函数
Out[15]: 
   A  B  C  D  E
a  0  1  2  3  4

3. 总结

对于loc选取行列数据:

  • 行根据行标签,也就是索引筛选,列根据列标签,列名筛选
  • 如果选取的是所有行或者所有列,可以用:代替
  • 行标签选取的时候,两端都包含,比如[0:5]指的是0,1,2,3,4,5

对于iloc选取行列数据:

  • iloc基于位置索引,简言之,就是第几行第几列,只不过这里的行列都是从0开始的。
  • iloc的0:X中不包括X,只能到X-1.

参考链接:

1.https://blog.csdn.net/W_weiying/article/details/81411257

2.https://zhuanlan.zhihu.com/p/129898162

到此这篇关于Pandas中的loc与iloc区别与用法小结的文章就介绍到这了,更多相关Pandas中的loc与iloc内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 字符串操作实现代码(截取/替换/查找/分割)

    Python 字符串操作实现代码(截取/替换/查找/分割)

    这篇文章主要介绍了Python 字符串截取/替换/查找/分割等实现方法,需要的朋友可以参考下
    2013-06-06
  • django批量导入xml数据

    django批量导入xml数据

    从网上下载的一些数据,excel表格,xml文件,txt文件等有时候我们想把它导入数据库,应该如何操作呢?下面我们就来详细讨论下。
    2016-10-10
  • django-allauth入门学习和使用详解

    django-allauth入门学习和使用详解

    这篇文章主要介绍了django-allauth入门学习和使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python编程中的反模式实例分析

    Python编程中的反模式实例分析

    这篇文章主要介绍了Python编程中的反模式,详细讲述了反模式的害处并以实例形式具体分析了容易造成的易错点,对于Python学习来说具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • python Django 创建应用过程图示详解

    python Django 创建应用过程图示详解

    这篇文章主要介绍了python Django 创建应用过程图示详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Flask添加路由的三种方法

    Flask添加路由的三种方法

    Flask 是一个流行的 Python Web 框架,它提供了多种方法来添加路由,本文详细的介绍了Flask添加路由的三种方法,感兴趣的可以了解一下
    2023-11-11
  • 吴恩达机器学习练习:神经网络(反向传播)

    吴恩达机器学习练习:神经网络(反向传播)

    这篇文章主要介绍了学习吴恩达机器学习中的一个练习:神经网络(反向传播),在这个练习中,你将实现反向传播算法来学习神经网络的参数,需要的朋友可以参考下
    2021-04-04
  • 浅谈numpy生成数组的零值问题

    浅谈numpy生成数组的零值问题

    今天小编就为大家分享一篇浅谈numpy生成数组的零值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python提效小工具之统计xmind用例数量(源码)

    python提效小工具之统计xmind用例数量(源码)

    这篇文章主要介绍了python提效小工具之统计xmind用例数量,利用python开发小工具,实现同一份xmind文件中一个或多个sheet页的用例数量统计功能,需要的朋友可以参考下
    2022-10-10
  • python爬虫实战steam加密逆向RSA登录解析

    python爬虫实战steam加密逆向RSA登录解析

    今天带来爬虫实战的文章。在挑选游戏的过程中感受学习,让你突飞猛进。本文主要实现用Python逆向登录世界上最大的游戏平台源码分享,了解steam加密手段有多高明
    2021-10-10

最新评论