python数据分析基础之pandas中loc()与iloc()的介绍与区别介绍

 更新时间:2024年07月26日 10:09:40   作者:sodaloveer  
我们经常在寻找数据的某行或者某列的时常用到Pandas中的两种方法iloc和loc,两种方法都接收两个参数,第一个参数是行的范围,第二个参数是列的范围,这篇文章主要介绍了python数据分析基础之pandas中loc()与iloc()的介绍与区别,需要的朋友可以参考下

前言

我们经常在寻找数据的某行或者某列的时常用到Pandas中的两种方法iloc和loc,两种方法都接收两个参数,第一个参数是行的范围,第二个参数是列的范围。

一、loc[]函数

loc:

  • 接收的是行、列的名称或标签
  • 在切片是按闭区间切片,也就是区间两边都能取到。

二、iloc[]函数

iloc:

  • 接收的是行、列的索引位置(下标,从0开始)。
  • 按传统的左闭右开的的方式切片。

三、详细用法

创建用于测试的数据表dataframe:

import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
      'year':[2000,2001,2002,2001,2002],
      'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=pd.DataFrame(data)
frame.index=list('abcde') 
frame

loc方法

1、单个行名/列名 或 行名/列名的列表

要求:读取第2行,行名为’b’。

frame.loc['b']

注意: 上面这种写法,运行"print(type(frame.loc[‘b’]))"可以知道返回的是<class ‘pandas.core.series.Series’>对象,如果要<class ‘pandas.core.frame.DataFrame’>对象可以改成frame.loc[[‘b’]]。

frame.loc[['b']]

要求:取第1、2列的第2与第5行,第1、2列的列名分别为’state’与’year’,第2、5行的行名分别为’b’和’e’。

frame.loc[['b','e'],['state','year']]

2、列名/行名的切片

要求:读取第2列,列名为’year’。

frame.loc[:,'year']  #返回的是<class 'pandas.core.series.Series'>对象。

frame.loc[:,['year']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。

要求:取第2行第3列,第2行行名为’b’,第3列列名为’pop’。

frame.loc['b','pop']

要求:读取dataframe某个区域,比如第3列的第2到第5行,第3列为"pop"列,第2到第5行即b行到e行。

frame.loc['b':'e','pop'] #返回的是<class 'pandas.core.series.Series'>对象。

frame.loc['b':'e',['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。

要求:取第1、2列的第2到第5行,第1、2列的列名分别为’state’和’yea‘列,第2、5行的行名为’b’和‘e’行。

frame.loc['b':'e','state':'year'] #返回的是<class 'pandas.core.frame.DataFrame'>对象。

3、返回布尔型列表的表达式(判断或函数)

要求:根据判断条件读取,取第3列大于2的。

frame.loc[frame['pop']>2,'pop'] #返回的是<class 'pandas.core.series.Series'>对象。

frame.loc[frame['pop']>2,['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。

要求:根据函数读取,取第3列大于2的所有行与列。

frame.loc[lambda x: x['pop']>2]

iloc方法

 1、单个下标 或 若干下标构成的列表,从0开始。

要求:取第2行的值。

frame.iloc[1] 

注意: 上面这种写法,运行"print(type(frame.iloc[1]]))"可以知道返回的是<class ‘pandas.core.series.Series’>对象,如果要<class ‘pandas.core.frame.DataFrame’>对象可以改成frame.iloc[[1]]。

frame.iloc[[1]]

要求:取第1、2列的第2与第5行。

frame.iloc[[1,4],[0,1]]

2、下标的切片

要求:取第2列的值。

frame.iloc[:,1] #返回的是<class 'pandas.core.series.Series'>对象。

frame.iloc[:,[1]]  #返回的是<class 'pandas.core.frame.DataFrame'>对象。

要求:取第2行第3列

frame.iloc[1,2]

要求:读取dataframe某个区域,比如第3列的第2到第5行。

frame.iloc[1:5,2]  #返回的是<class 'pandas.core.series.Series'>对象。

frame.iloc[1:5,[2]] #返回的是<class 'pandas.core.frame.DataFrame'>对象。

要求:取第1、2列的第2到第5行。

frame.iloc[1:5,0:2] #因为是.iloc[]中用:表示从第几行/列到第几行/列是左闭右开的的方式,因此这里下标3表示第四行与第四列是取不到的。
frame.iloc[[1,2,3,4],[0,1]] #第二种写法

3、可以返回合理值的函数

要求:当DataFrame的index是整数,取index为偶数的记录。

import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
      'year':[2000,2001,2002,2001,2002],
      'pop':[1.5,1.7,3.6,2.4,2.9]}
frame=pd.DataFrame(data)
frame
frame.iloc[lambda x: x.index % 2 == 0]

总结

共同点

  • 两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围。
  • 两者都可以有行索引值没有列索引值,但有列索引值前必须得有行索引值,但loc[]行索引值只能为名称形式来取,不能按下标形式来取。iloc[]则相反。

取第三列,无论使用loc[]函数还是iloc[]函数,如果没有行索引都会报错。

frame.loc['pop']
frame.loc[,'pop']
frame.iloc[,3]

不同点

1、loc[]函数接收的是行/列的名称(可以是整数或者字符),iloc[]函数接收的是行/列的下标(从0开始),不能是字符。

2、loc[]函数在切片时是按闭区间切片的,也就是区间两边都能取到,iloc[]函数则是按传统的左闭右开的方式切片的。

参考文章:
https://blog.csdn.net/weixin_43298886/article/details/112632237
https://blog.csdn.net/Leon_Kbl/article/details/97492966

到此这篇关于python数据分析基础之pandas中loc()与iloc()的介绍与区别的文章就介绍到这了,更多相关python pandas中loc()与iloc()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用pymongo与MongoDB基本交互操作示例

    python使用pymongo与MongoDB基本交互操作示例

    这篇文章主要介绍了python使用pymongo与MongoDB基本交互操作,结合实例形式详细分析了python基于pymongo库实现与MongoDB基本交互相关操作技巧与注意事项,需要的朋友可以参考下
    2020-04-04
  • python获取远程图片大小和尺寸的方法

    python获取远程图片大小和尺寸的方法

    这篇文章主要介绍了python获取远程图片大小和尺寸的方法,实例分析了Python中urllib2.urlopen方法及图片操作技巧,需要的朋友可以参考下
    2015-03-03
  • 详解Python+Pyecharts实现漏斗图的绘制

    详解Python+Pyecharts实现漏斗图的绘制

    漏斗图是一个简单的散点图,反映研究在一定样本量或精确性下单个研究的干预效应估计值。本文将用Python Pyecharts实现漏斗图的绘制,需要的可以参考一下
    2022-06-06
  • TensorFlow深度学习另一种程序风格实现卷积神经网络

    TensorFlow深度学习另一种程序风格实现卷积神经网络

    这篇文章主要介绍了TensorFlow卷积神经网络的另一种程序风格实现方式示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 详解python3中的真值测试

    详解python3中的真值测试

    这篇文章主要介绍了详解python3中的真值测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • python用glob模块匹配路径的方法详解

    python用glob模块匹配路径的方法详解

    这篇文章主要介绍了python如何用glob模块匹配路径,glob模块是Python的一个标准库,用于在文件系统中查找文件名匹配特定模式的文件路径,需要的朋友可以参考下
    2024-02-02
  • django框架cookie和session用法实例详解

    django框架cookie和session用法实例详解

    这篇文章主要介绍了django框架cookie和session用法,结合实例形式详细分析了Django框架cookie和session的功能、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-12-12
  • Python利用Spire.PDF for Python合并PDF文件的实现过程

    Python利用Spire.PDF for Python合并PDF文件的实现过程

    管理大量 PDF 文件通常是一项繁琐的任务,尤其是当信息分散在多个逻辑上应属于一体的文档中时,将这些文件合并成一个连贯的文档,是处理报告、学术论文或法律简报时的常见需求,文将指导您完成 使用 Python 合并 PDF 文件 的过程,需要的朋友可以参考下
    2025-09-09
  • pycharm突然双击无法打开以及重启电脑也不管用的解决过程

    pycharm突然双击无法打开以及重启电脑也不管用的解决过程

    这篇文章主要介绍了pycharm突然双击无法打开以及重启电脑也不管用的解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-03-03
  • Python常用的文件及文件路径、目录操作方法汇总介绍

    Python常用的文件及文件路径、目录操作方法汇总介绍

    这篇文章主要介绍了Python常用的文件及文件路径、目录操作方法汇总介绍,本文集合了最常用的一些文件和目录操作函数,并一一介绍它们的作用,需要的朋友可以参考下
    2015-05-05

最新评论