pandas loc与iloc用法及区别
作者:为什么昵称不能重复 发布时间:2023-01-22 08:26:53
共同点
两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围
不同点
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]
来源:https://blog.csdn.net/weixin_43298886/article/details/112632237


猜你喜欢
- 昨日晚平台升级,我们成功送BUG上线,今天系统问题又多了起来,大多数时候的运维问题需要根据业务反馈的#订单号# 查询到当前状态,然后再进行反
- 随便在网上找了找,感觉都是讲半天讲不清楚,这里写一下。def generator(): while True: &
- 方法一:f = open("foo.txt") &
- 在这篇入门教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯及XML语言基础。如果你还没有,那么请先学习相关知识。我
- 本文实例讲述了Python聚类算法之基本K均值运算技巧。分享给大家供大家参考,具体如下:基本K均值 :选择 K 个初始质心,其中 K 是用户
- 本文实例讲述了Python3.5变量、数据结构、条件和循环语句、break与continue语句。分享给大家供大家参考,具体如下:1、变量:
- 在用python画散点图的时候想标记出特定的点,比如在某些点的外围加个空心圆,一样可以通过plt.scatter实现import matpl
- 目录一、前言二、Json.loads与eval 性能对比1. eval2. json.loads一、前言最近发现一些小伙伴使用eval来处理
- pandas中iloc()函数DataFrame.iloc纯基于整数位置的索引。import pandas as pdmydict = [{
- Go语言转换JSON数据真是非常的简单。以EasyUI的Demo为例,将/demo/datagrid/datagrid_data1.json
- 前言Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 ti
- 前言:如果正在看文章的你,还不会绘制折线图,请看如何使用matplotlib绘制折线图这篇文章,该文章会仔细而详尽的告诉你绘制折线图的方法。
- 之前我给粉丝们搞过个投票,寻找MySQL中那个最熟悉的陌生人~~MySQL中哪些技术点是你既熟悉又陌生的?前三名和我预料大差不差,分别是
- 这篇日志完全是看了一篇日志后的启发,原文为: * 的eval和new Function。很少使用new Array的方式来定义数组,没想到ne
- 一、撤销修改(git add/rm 之前)git checkout -- * //是撤销从上次提交之后所做的所有修改git c
- 1. 什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表
- 和C语言一样,引号属于特殊功能字符,不能够像普通字符那样直接通过print打印,需要进行一些处理,比如说反斜杠转义等。这里介绍几种打印三引号
- 创建函数时问题马上出现: ERROR 1418 (HY000): This routine has none of DETERMINISTI
- 今天在设计一个标签(采用的是Select 选择器中的标签那一个)时,从后台返回了数据,但是在输入值时,没有对回显的值进行过滤匹配,通过查看官
- 如何自动反馈电子邮件?很多网站上的电子邮件都是自动回复的,就象163电子邮局提供的邮件自动回复功能一样。这是怎么实现的?我们可以用ASPMa