pandas中loc、iloc、at、iat的区别

 废话不多说,直接上代码

import pandas as pd

if __name__ == "__main__":

    data = [["lucy", "female", 17], ["lilei", "male", 18],["hanmeimei", "female", 17],["lily", "female", 16]]
    index = ['a', 'b','c','d']
    columns = ['name', 'sex', 'age']
    df = pd.DataFrame(data=data, index=index, columns=columns)
    print("*" * 10,"获取所有数据","*" * 10)
    print(df.loc[:])
    print("*" * 10,"获取第一行数据","*" * 10)
    print(df.loc["a",:])
    print("*" * 10,"获取第一行,第二列数据","*" * 10)
    print(df.loc["a","sex"])
    print("*" * 10,"获取前两行,前两列数据","*" * 10)
    print(df.loc[:"b",:"sex"])
    print("*" * 10,"获取第一、三行,第一、三列列数据","*" * 10)
    print(df.loc[['a','c'],['name','age']])
    # print(df.loc[1,2]) #报错:KeyError:
    print("*" * 20, "iloc", "*" * 20)
    print("*" * 10, "获取所有数据", "*" * 10)
    print(df.iloc[:])
    print("*" * 10, "获取第一行数据", "*" * 10)
    print(df.iloc[0, :])
    print("*" * 10, "获取第一行,第二列数据", "*" * 10)
    print(df.iloc[0, 2])
    print("*" * 10, "获取前两行,前两列数据", "*" * 10)
    print(df.iloc[:2, :2])
    print("*" * 10, "获取第一、三行,第一、三列列数据", "*" * 10)
    print(df.iloc[[0, 2], [0, 2]])
    # print(df.iloc["a", "sex"]) #ValueError: Location based indexing can only have [integer, integer slice
    print("*" * 20, "at", "*" * 20)
    print("*" * 10, "获取第一行、第一列数据", "*" * 10)
    print(df.at["a","name"])
    # print(df.at["a":"c","name":]) #TypeError: unhashable type: 'slice'
    # print(df.at[1, 2]) #KeyError: 2
    print("*" * 20, "iat", "*" * 20)
    print("*" * 10, "获取第一行、第一列数据", "*" * 10)
    print(df.iat[0, 0])
    print("*" * 10, "==", "*" * 10)
    # print(df.iat[0:2, 0]) #ValueError: iAt based indexing can only have integer indexers
    # print(df.iat["a", "sex"]) #ValueError: iAt based indexing can only have integer indexers
    # df.ix["a":"c","name":"age"] #AttributeError: 'DataFrame' object has no attribute 'ix'

输出:

********** 获取所有数据 **********
        name     sex  age
a       lucy  female   17
b      lilei    male   18
c  hanmeimei  female   17
d       lily  female   16
********** 获取第一行数据 **********
name      lucy
sex     female
age         17
Name: a, dtype: object
********** 获取第一行,第二列数据 **********
female
********** 获取前两行,前两列数据 **********
    name     sex
a   lucy  female
b  lilei    male
********** 获取第一、三行,第一、三列列数据 **********
        name  age
a       lucy   17
c  hanmeimei   17
******************** iloc ********************
********** 获取所有数据 **********
        name     sex  age
a       lucy  female   17
b      lilei    male   18
c  hanmeimei  female   17
d       lily  female   16
********** 获取第一行数据 **********
name      lucy
sex     female
age         17
Name: a, dtype: object
********** 获取第一行,第二列数据 **********
17
********** 获取前两行,前两列数据 **********
    name     sex
a   lucy  female
b  lilei    male
********** 获取第一、三行,第一、三列列数据 **********
        name  age
a       lucy   17
c  hanmeimei   17
******************** at ********************
********** 获取第一行、第一列数据 **********
lucy
******************** iat ********************
********** 获取第一行、第一列数据 **********
lucy
********** == **********

综上可以总结出它们的区别:

  • loc:只能通过行索引和列索引名称获取单行单列,或者多行多列数据;
  • iloc:只能通过行序号和列序号获取单行单列,或者多行多列数据;
  • at:只能通过行索引和列索引名称获取单行单列数据,不能获取多行多列数据;
  • iat:只能通过行序号和列序号获取单行单列数据,不能获取多行、多列数据;
  • ix:从pandas 0.20.0版开始,ix已被彻底移除;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/573460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

采用php vue2 开发的一套医院安全(不良)事件管理系统源码(可自动生成鱼骨图)

采用php vue2 开发的一套医院安全(不良)事件管理系统源码(可自动生成鱼骨图) 医院安全(不良)事件管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,以事件…

项目上线流程(保姆级教学)

01:注册阿里云账户 02:登录阿里云 03:在桌面新建记事本保存个人账号密码等信息 04:完成重置密码 05:安装宝塔面板 命令行 yum install -y wget && wget -O install.sh http://download.bt.cn/install/instal…

Maya vs Blender:制作3D动画首选哪一个?

就 3D 动画而言,有两款3D软件引发了最多的争论:Blender 与 Maya。这两个强大的平台都提供强大的工具集,使动画故事和角色栩栩如生。但作为一名3D动画师,您应该投入时间学习和创作哪一个呢?下面我将从以下六点给您一个清…

spring boot中的标注@Component、@Service等

让我告诉你什么叫水货。 一、水货横行 一直以来,我对Spring Boot项目中的标注,像Component啦、Service啦、Configuration啦,甚至Autowired啦,等等,都似懂非懂。Autowired与Resource有什么区别也不清楚。 个中原因&a…

分享:抖音阳哥说的人力RPO项目有哪些优势?

在数字化浪潮的推动下,人力资源行业也迎来了前所未有的变革。抖音平台上,阳哥以其独到的见解和丰富的经验,对人力RPO(招聘流程外包)项目进行了深入解读。今天,我们就来探讨一下人力RPO项目究竟有哪些优势。 人力RPO项目的一大优势…

get和post的区别?get不安全-post安全|面试官:好,你走吧

get和post的区别?get不安全-post安全|面试官:好,你走吧 开个小玩笑,面试官肯定是想知道更详细的内容,那面下面就是相对详细的内容,请收下吧(* ̄︶ ̄) 1、url可见性 get,参…

瀑布VS敏捷,看看哪种研发管理模式更适合你的团队

软件开发是一个复杂且极具挑战性的过程,需要有合适的研发管理模式。瀑布模型和敏捷开发是两种常见的研发管理模式,它们在项目管理和团队合作方面有着截然不同的理念和实践方式。本文将介绍这两种开发模式的特点、优缺点及对比,提供如何选择适…

【论文速读】|大语言模型(LLM)智能体可以自主利用1-day漏洞

本次分享论文: LLM Agents can Autonomously Exploit One-day Vulnerabilities 基本信息 原文作者:Richard Fang, Rohan Bindu, Akul Gupta, Daniel Kang 作者单位:无详细信息提供 关键词:大语言模型, 网络安全, 1-day漏洞, …

“我也想和月牙一样,把不满写在脸上”

贪吃蛇的初级实现 1. Win32 API介绍1.1 Win32 API1.2 控制台程序1.3 控制台屏幕上的坐标COORD1.4 GetStdHandle1.5 GetConsoleCursorInfo1.5.1 CONSOLE_CURSOR_INFO 1.6 SetConsoleCursorInfo1.7 SetConsoleCursorPosition1.8 GetAsyncKeyState 2. 贪吃蛇游戏设计与分析2.1 地图…

替换windows11 c:/windows/system32/下的dll

找到注册表中的这一项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\icssvc\Settings 添加 WifiMaxPeers dword 值 32位 最大值是128 设置完成后重启icssvc服务 sc stop icssvc sc start icssvc 由于win11不小心装了preview版本,貌似这个8个最大的已经限定…

输入influx但是无法进入influxdb

问题描述: 博主想通过DockerJmeterInfluxDBGrafana搭建性能测试可视化平台,但是按照别的教程输入influx却无法进入inluxdb,输入输出如下: NAME:influx - Influx ClientUSAGE:influx [command]HINT: If you are looking for the I…

Cgicc搭建交叉编译环境(移植到arm)

Cgicc GUN Project官网连接:Cgicc- GNU Project - Free Software Foundation 1. 下载源码 Cgicc下载地址: [via http] Index of /gnu/cgicc [via FTP] ftp://ftp.gnu.org/gnu/cgicc/ 目前最新版:3.2.20 2. 源码构建原理 一般&#xff…

冰箱、保险柜门不要对准外面

风水真的和我们的生活息息相关,它会影响到我们的事业财运、婚姻感情、健康平安等等。很多人在不知情的情况下,触犯了风水里的禁忌,那结果可想而知! 峰民特别提示您:千万不要将冰箱、保险柜的门对准外面。冰箱是不能与…

虚拟化与Docker基本概念与Docker的安装

Docker Docker 是一个开源的应用容器引擎,它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中,这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行,保证了应用在不同环境之间的…

JdbcTemplate详解

1 概述 为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个JDBC存取框架。 作为Spring JDBC框架的核心,JDBC模板的设计目的是为不同类型的JDBC操作提供模板方法,通过这种方式,可以在尽可能保留…

主食冻干哪个国家的好?全网热销款品控好的主食冻干必买

主食冻干哪个国家的好?谈及主食冻干哪款好,进口的主食冻干总是能被提名。不论是在哪个电商平台搜索“主食冻干”,都会发现那些备受推崇是进口主食冻干。从销售数据上看,这些进口冻干在大型促销活动如双11、618中的销量一直居高不下…

【面试题】java后端开发实习(含答案)

java后端开发实习生-常见面试题 1)JDK,JRE,JVM的关系 JDK JRE java开发工具JRE JVM java核心类库 2)String类的常用方法 1.关于字符串获取方面 length 获取长度charAt 获取指定索引的字符indexOf 获取字符所在的索引位置lastIndexOf 获取字符所在…

printjs打印表格的时候多页的时候第一页出现空白

现象:打印多页的时候第一页空白了,一页的时候没有问题 插件:printjs 网上搜索半天找到的方式解决: 1. 对于我这次的现象毫无作用。其他情况不得而知,未遇见过。(这个应该是大家用的比较多的方式&#xf…

像人脑一样工作!在量子计算机上运行强大的人工智能

内容来源:量子前哨(ID:Qforepost) 文丨王珩 浪味仙 排版丨沛贤 深度好文:2500字丨8分钟阅读 摘要:Transformer 确实可以在简单的量子硬件上工作,这至少从理论上表明:量子人工智能的…

库存数据可视化分析按这个做,赚大了!

今天我们来看一张库存数据可视化分析驾驶舱,全面了解库存资金占用情况,物料周转情况,库存趋势情况、以及占库存金额最高的商品有哪些等。 为更好地实现以上效果,并且增强报表的可读性、易读性,我们采用了按分析场景选…