pandas loc与iloc用法及区别

 更新时间:2023年05月16日 14:27:44   作者:为什么昵称不能重复  
本文主要介绍了pandas loc与iloc用法及区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

共同点

两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围

不同点

  • loc函数接收的是行/列的名称,iloc函数接收的是行/列的下标(从0开始)
  • loc函数在切片时是按闭区间切片的,也就是区间两边都能取到,iloc函数则是按传统的左闭右开的方式切片的

图解:

详细用法

用于展示用法的数据data如下:

loc函数参数类型

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

print(data.loc['Chris']) # 等价于data.loc['Chris', :]

输出:

注意上面这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.loc[['Chris']]

print(data.loc[['Alice', 'David', 'Ellen'], ['Physics', 'Chemistry']])

输出:

列名/行名的切片

print(data.loc['Alice': 'Ellen', 'Math': 'English'])

输出:

布尔型列表(注意长度需要和行数/列数保持一致)

print(data.loc[[False, True, False, False, True, True], [True, False, False, True, True, True]])

输出:

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

print(data.loc[data['Chinese'] > 100, 'Chinese'])

输出:

同样的,这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.loc[data['Chinese'] > 100, ['Chinese']]

print(data.loc[lambda x: x['English'] < 100])

输出:

iloc函数参数类型

单个下标 或 若干下标构成的列表

print(data.iloc[3]) # 等价于print(data.iloc[3, :])

输出:

这种写法返回的是pandas.core.series.Series对象,如果要pandas.core.frame.DataFrame对象可以改成data.iloc[[3]]

print(data.iloc[[1, 2, 4], [2, 4, 5]])

输出:

下标的切片

print(data.iloc[4: 6, 1:])

输出:

布尔型列表(注意长度需要和行数/列数保持一致)

print(data.iloc[[False, True, False, False, True, True], [True, False, False, True, True, True]])

输出:

可以返回合理值的函数

data.iloc[lambda x: x.index > 'Bob']

输出:

解释一下,这里传入lambda匿名函数的x是整个DataFrame,所以x.index就是['Alice', 'Bob', 'Chris', 'David', 'Ellen', 'Frank'],大于Bob即取字典序大于Bob的那些index;这里的函数意义不大,真正有用的是当DataFrame的index是整数的时候你可以通过这种方式选取满足某种要求的index,比如只选那些index为偶数的记录:

data.iloc[lambda x: x.index % 2 == 0]

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

相关文章

  • Python五种下划线详解

    Python五种下划线详解

    这篇文章主要介绍了Python下划线5种含义实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-10-10
  • 几行代码让 Python 函数执行快 30 倍

    几行代码让 Python 函数执行快 30 倍

    Python 编程语言,与其他流行编程语言相比主要缺点是它的动态特性和多功能属性拖慢了速度表现。Python 代码是在运行时被解释的,而不是在编译时被编译为原生代码。在本文中,我们将讨论如何用多处理模块并行执行自定义 Python 函数,并进一步对比运行时间指标。

    2021-10-10
  • python如何使用replace做多字符替换

    python如何使用replace做多字符替换

    这篇文章主要介绍了python如何使用replace做多字符替换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • PyQt5 QDockWidget控件应用详解

    PyQt5 QDockWidget控件应用详解

    这篇文章主要介绍了PyQt5 QDockWidget控件应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • opencv python 傅里叶变换的使用

    opencv python 傅里叶变换的使用

    这篇文章主要介绍了opencv python 傅里叶变换的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 利用Python实现生成颜色表(color chart)

    利用Python实现生成颜色表(color chart)

    在做色彩相关的算法分析时候,经常需要使用规则的颜色表来进行辅助,本文就来利用numpy和opencv生成颜色表并保存为图片,需要的可以参考一下
    2023-05-05
  • python中的列表和元组实例详解

    python中的列表和元组实例详解

    在Python中序列是最基本的数据结构,它是一块用于存放多个值得连续内存空间,Python中内置了5个常用的序列结构,分别是列表、元组、集合、字典和字符串,本文将详细讲解python中的列表和元组,感兴趣的朋友跟随小编一起看看吧
    2022-11-11
  • PyQt5使用QTimer实现电子时钟

    PyQt5使用QTimer实现电子时钟

    这篇文章主要为大家详细介绍了PyQt5使用QTimer实现电子时钟,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python包管理工具pip用法详解

    Python包管理工具pip用法详解

    本文详细讲解了Python包管理工具pip的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Python参数解析模块sys、getopt、argparse使用与对比分析

    Python参数解析模块sys、getopt、argparse使用与对比分析

    今天小编就为大家分享一篇关于Python参数解析模块sys、getopt、argparse使用与对比分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04

最新评论