pandas loc与iloc用法及区别

作者:为什么昵称不能重复 时间:2023-01-22 08:26:53 

共同点

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

不同点

  • loc函数接收的是行/列的名称,iloc函数接收的是行/列的下标(从0开始)

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

图解:

pandas loc与iloc用法及区别

详细用法

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

pandas loc与iloc用法及区别

loc函数参数类型

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

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

列名/行名的切片

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

iloc函数参数类型

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

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

下标的切片

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

输出:

pandas loc与iloc用法及区别

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

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

输出:

pandas loc与iloc用法及区别

可以返回合理值的函数

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

输出:

pandas loc与iloc用法及区别

解释一下,这里传入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]

来源:https://blog.csdn.net/weixin_43298886/article/details/112632237

标签:pandas,loc,iloc
0
投稿

猜你喜欢

  • SQL Server Alert发送告警邮件少了的原因

    2024-01-27 14:15:38
  • Python脚本在Appium库上对移动应用实现自动化测试

    2021-12-27 12:43:24
  • python轻松查到删除自己的微信好友

    2021-06-06 12:31:44
  • django haystack实现全文检索的示例代码

    2021-04-08 05:00:59
  • python 字符串只保留汉字的方法

    2022-07-15 00:34:49
  • Anaconda安装OpenCV的方法图文教程

    2021-11-30 18:22:09
  • 解决tensorflow 释放图,删除变量问题

    2023-08-10 09:42:47
  • python特性语法之遍历、公共方法、引用

    2023-05-17 16:21:29
  • python实现mp3文件播放的具体实现代码

    2023-02-03 13:37:52
  • ASP XMLDom在服务器端操作XML文件的主要方法和实现

    2011-03-09 11:09:00
  • 在Python中使用元类的教程

    2021-04-12 05:09:34
  • MySQL锁等待与死锁问题分析

    2024-01-14 01:49:36
  • php实现统计二进制中1的个数算法示例

    2024-06-05 09:39:05
  • python lambda表达式在sort函数中的使用详解

    2021-09-22 02:07:56
  • SQLServer触发器调用JavaWeb接口的过程详解

    2024-01-17 12:08:45
  • Python实现微信好友数据爬取及分析

    2021-09-30 04:51:55
  • XML入门的常见问题(一)

    2008-09-05 17:20:00
  • win7安装python生成随机数代码分享

    2021-05-18 10:47:39
  • Swin Transformer图像处理深度学习模型

    2022-01-16 22:32:08
  • python实现批量转换图片为黑白

    2023-03-14 15:13:11
  • asp之家 网络编程 m.aspxhome.com