Pandas中df.loc[]与df.iloc[]的用法与异同
作者:三头六臂的小白 发布时间:2023-01-24 07:57:04
官网资料:
loc :https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html
iloc : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html
用 途:
取数: 从dataframe中取 一部分行与列的数据 (为主)
赋值: 给指定的 行与列赋值 df.loc[xx,xx] = xx
输入参数注意:
方括号内的参数:
loc、iloc 方括号中,参数的排布模式为[行条件,列条件],当总体条件只有一个时候(最外层方括号内无逗号),会按照:先行后列的方法来匹配对应的条件
默认会抛弃掉对应的dataframe格式,输出series,如果想保留dataframe格式,需要在条件外边加 ”[ ]”。
loc与iloc条件(行/列)相同之处:
单一元素(不包含list) str/int/slice 选取行时候,选取的是对应条件下的行 (series)
单一元素(不包含list) str/int/slice 选取列时候,选取的是对应条件下的列(series)
条件为list时候,选取的是一组对应的 行(列) 条件下的(dataframe数据)
布尔值的list/可与df对齐的series(布尔类型): 与index长度相同的话 选择对应值为True的行,与列数相同的话,选取对应值为True 的列。
df的index的子集index2: 选取df中对应的index2的行
函数:输入为行/列series(外层有逗号)或者dataframe(外层无括号) 返回为对应输入的一个布尔值表,用来筛选对应的数据。
不同之处:
当对应的行/列标签为 int类型x时候,iloc表示对应的第x个 index或column,而loc 表示对应的index /column名称等于这个x。
对应的开闭区间不同 df.loc[1:5,1:5] 会有一个最多 5x5的df数据子集,而df.iloc[1:5,1:5] 会有最多4x4df数据子集,其中iloc的行/列切片不包含最后一个数(与range函数类似)
loc与iloc 实际用例:
df = pd.DataFrame([[1, 2,3,14], [4, 5,6,17], [7, 8,9,10],[11,12,13,14]],
index=[2,3,4,5],
columns=[2,4,5,6])
# loc 行/列条件是对应的标签值在对应的范围内,[闭合,闭合] 区间
df.loc[2:5,2:5]
# 输出为:
# 2 4 5
#2 1 2 3
#3 4 5 6
#4 7 8 9
#5 11 12 13
# 选取index 为 2 的行里面的值
# 不推荐:df.loc[2] 下文省略
df.loc[2,:]
# 输出为 1,2,3,14 series类型
# 选取index 为 2 的行 保留dataframe类型
df.loc[[2],:]
#选取对应列名为 2 的列
df.loc[:,2]
# 这里 index 与 列名都是int类型,因此loc方括号中使用int类型,如果是其他类型,对应的数字要改成其他类型的数据,不能再用数字
# iloc 行/列条件是对应的标签或者列名的索引值在范围内,[闭合,开放) 区间
df.iloc[2:5,2:5]
# 输出为
# 5 6
#4 9 10
#5 13 14
# 这里 索引是以0开始的,所有行的切片应该写作 0:5 也可以写作“ :”
# iloc 数字类型来做筛选的
# 不管是loc 还是 iloc 都建议用[行条件,列条件] 来写,其中如果无需筛选可以用:来占位,表意明确。
# loc 匹配的是 index/列名的值 与对应的条件
# iloc 匹配的是 index/列名对应的索引号 与对应的条件
来源:https://blog.csdn.net/bf96163/article/details/122304597
猜你喜欢
- 别误会,IE是不支持CSS3高级选择器,包括最新的IE8(详见《CSS选择器的浏览器支持》),但是CSS选择器的确是很有用的,它可以大大的简
- 写了个JavaScript版的DateAdd、DateDiff、IsDate函数,大家评评!需要说明的是,JavaScript中IsDate
- pip源配置文件可以放置的位置:Linux/Unix:/etc/pip.con~/.pip/pip.conf (每一个我都找了都没有,所以我
- 我就废话不多说,直接上代码吧!from PIL import ImageGrabimport timeimport scheduleimpo
- 简介:psutil(进程和系统实用程序)是一个跨平台库,用于检索Python中运行进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息
- 一、开发环境集成开发工具:jupyter notebook 6.5.2集成开发环境:Python 3.10.6第三方库:tensorflow
- 从Python3.2引入的concurrent.futures模块,Python2.5以上需要在pypi中安装futures包。future
- PHP 是世界上最好的语言。经典的 LNMP(linux + nginx + php + mysql)环境有很多现成的部署脚本,但是在 Do
- 数据库镜像是将数据库事务处理从一个数据库移动到不同环境中的另一个数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下
- 楔子估计有不少小伙伴在将 DataFrame 导入到 Excel 的时候,都遇到过下面这种尴尬的情况:想将多个 DataFrame 导入到一
- Brendan Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着A
- Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下:1.在python安装目录的Lib
- 一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的
- 本文实例讲述了Python使用matplotlib绘制正弦和余弦曲线的方法。分享给大家供大家参考,具体如下:一 介绍关键词:绘图库官网:ht
- 本篇文章是作者关于在学习了《Python学习手册》以后,分享的学习心得,在此之前,我们先给大家分享一下这本书:下载地址:Python学习手册
- 上一篇文章中我们介绍了 python 语言的几个特点,并在最后留了一个问题,python 除了上下执行以外有没有其他的执行方式。今天我们就来
- 下面,我们就从当前时间来取得随机数,调用的时候用包含文件就可以了:<!--#INCLUDE VIRTUAL="/q
- 本文给出了几个表单常用的js验证函数,有检查、\等特殊字符的,有检查是否含有空格,检查是否为Email 地址,也有检查是否是小数或负数的,检
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- 现在有越来越多的个人主页站长需要了解如何如何在windows系统下配置自己的php,cgi服务器,以方便本地调试cgi和php的程序。我们可