c++没有终结符的多行输入如何停止_如何使用iloc和loc 对Pandas Dataframe进行索引和切片...

940b2095e85867037602860e9370583b.png

在这篇文章中,我们将使用iloc和loc来处理数据。更具体地说,我们将通过iloc和loc例子来学习切片和索引。

一旦我们将一个数据集加载为Pandas dataframe,我们通常希望根据某些条件开始访问该数据的特定部分。例如,如果我们的数据集包含比较不同实验组的实验结果,我们可能需要分别计算每个实验组的描述性统计。

625c74685d5ea9c219427c5056a86c27.png

  • 更多有关对Pandas dataframes进行分组的内容

  • 如何在Python中进行描述性统计

根据某些标准选择数据的特定行和列的过程通常称为切片。

Pandas Dataframe

在我们学习如何使用loc和iloc之前,我们最好先了解一下Pandas dataframe对象是如何工作的。对于本索引和切片教程的特定目的,我们最好知道dataframe中的每个行和列都有一个数字——一个索引。

25e888b7a566d2bc065217fea4ea806c.png

这种结构是带有数字索引的行和列结构,这意味着我们可以使用行号和列号来处理数据。这在我们准备使用Pandas loc和iloc方法的时候是非常有用的。

  • 请参阅博文《使用Pandas和pyjanitor——了解一些简单的Python数据清理方法》。

Data

在下面的iloc和loc例子中,我们将使用两个数据集。这些数据集,在许多其他的RDataset中,可以在这里找到,但是下面的代码将把它们加载到Pandas dataframe中:

ab5d885e7d333e19cda3af88aeeeef79.png

如果您有兴趣学习更多有关Pandas数据处理的知识,请查看以下文章:

  • 如何将CSV文件读入Pandas

  • 如何将Excel文件读入Pandas

  • 将SPSS文件读入Pandas 

  • 使用Python和Pandas处理JSON文件

loc 和 iloc之间有什么不同?

在继续使用Pandas iloc和Pandas loc之前,我们将回答有关loc和iloc之间的区别的问题。

首先,.loc是一个基于标签的方法,而.iloc是一个基于整数的方法。这意味着当我们对dataframe进行切片时,loc将考虑索引的名称或标签。

c9f8b50113b24d82f871605ac1e41646.png

Pandas loc 示例链接

例如,如果“case”在一个dataframe(例如,df)的索引中,那么df.loc['case']将导致第三行被选中。注意,在下面的loc和iloc例子中,我们将使用数据集中的第一列作为索引(参见第一个代码块)。

984b848cdaaf7279f339569ce12de313.png

另一方面,Pandas .iloc会根据索引的位置进行切片。与.loc不同,.iloc的行为类似于常规的Python切片。也就是说,我们只需要指定位置索引数字,就会得到我们想要的切片。

例如,df.iloc[2]会为我们提供dataframe的第三行。这是因为,就像在Python中一样,.iloc是基于0位置的,也就是说,它从0开始。我们将在下面的文章中学习如何使用loc和iloc。

iloc在Pandas中能做什么?

如前所述,Pandas iloc主要基于整数位置。也就是说,可以使用0到长度-1来对一个dataframe建立索引,无论它是行索引还是列索引。

此外,正如我们将在后面的Pandas iloc 例子中所看到的,该方法也可以与一个布尔数组一起使用。

b563d16307d694be8a47721755d07ebe.png

在这个Pandas iloc教程中,我们将使用以下输入方法:

  • 一个整数,例如2

  • 一个整数列表,例如 [7, 2, 0]

  • 一个带有整数的切片对象,例如0:7, 如上图所示

  • 一个布尔型数组。

如何使用Pandas iloc

现在您可能想知道“如何使用iloc?”,当然,我们会回答这个问题。以最简单的形式,我们只需在括号中键入一个整数。

64367d31e86da9c4e6ba82309edb3778.png

c738e9a1993bff1155452aae3156211e.png

正如您在上面的Pandas iloc例子中所看到的,我们在iloc方法之后键入了一组方括号。

此外,我们还添加了一个整数(0)作为索引值,以指明我们想要获取我们的dataframe的第一行。注意,在使用.iloc时,一定要知道方括号内索引的顺序显然很重要。

第一个索引号将是我们要检索的行。如果我们要检索一个特定的列,或者某些特定的列,使用iloc,我们会输入第二个索引(或多个索引)。但是,这是可选的,并且没有第二个索引时,iloc将默认检索所有列。

如前所述,Pandas iloc语法是: DataFrame.iloc[,]。

a14b52233b74822991b7cbe990b9a2c3.png

这可能会让R统计编程环境的用户感到困惑。要进行迭代,我们可以使用Pandas中的iloc方法来以行和列在dataframe中出现的顺序按数字选择它们。

>>> 今日签到口令:ipd5 <<<

Pandas iloc 例子

在下一节中,我们将通过查看如何使用iloc的不同例子来继续这个Pandas 索引和切片教程。当然,我们已经从最基本的方法开始了;即选择单个行:

3b5131de26b2f812e1207c724dfc9fc5.png

索引一个Pandas dataframe的最后一行

在下一个例子中,我们将继续使用一个整数来索引dataframe。然而,如果我们想要检索一个Pandas dataframe的最后一行,我们使用“-1”:

d7dce68fd2f21611000b0deb0b1cde41.png

当我们使用iloc时,我们还可以输入一个只有一个索引整数的列表。这将会索引一行,但输出将不同于上面的例子:

22b798d3cc45a08d81153878353f53bc.png

f99b909032a61bc98c6e2071f229d25a.png

使用iloc选择多行

当然,我们也可以使用iloc从一个pandas dataframe中选择很多行。例如,如果我们向列表中添加更多的索引整数,就像上面的例子一样,我们就可以选择很多行。

11e940ee023ea18a81791210c9486a55.png

在Pandas中使用iloc对行进行切片

在下一个Pandas iloc例子中,我们将学习有关切片的知识。注意,稍后我们将进一步熟悉使用切片字符“:”。要选择第11行到第15行,我们只需输入以下代码:

8d3ea45793bb7dd6d9a82cb69fa69e89.png

使用Pandas iloc选择列

如前所述,当然,在使用iloc方法中的第二个参数时,我们也可以选择或切片列。在下一个iloc例子中,我们可能希望只检索dataframe中的第一列,即索引位置为0的列。

为此,我们将在使用iloc时在括号内的第二个位置使用一个整型索引值。注意,第二个位置的整数索引指定了我们要检索的列。那行是怎样呢?

a8ef530f3d37b5110de0a65d40628b56.png

注意,当我们想使用iloc选择所有行和一列(或多个列)时,我们需要使用“:”字符。

777eb27470b38040d33148c2f558b833.png

在上面的 Pandas iloc例子中,我们在括号内的第一个位置使用了“:”字符。这表明我们想要检索所有的行。提醒一下,[]内的第一个索引位置用来指定行,并且我们使用了“:”字符,因为我们希望从一个Pandas dataframe获取所有行。

在下一个关于如何使用Pandas iloc的例子中,我们将获取一个一些列和所有行的切片。这可以用与上面类似的方法来完成。然而,我们使用了一个Python切片来获取所有行和前6列,而不是使用一个整数:

c1388f5a133a1cc5926af435e66c5f7b.png

使用iloc选择一个特定的单元格

在Pandas iloc教程的这一节中,我们将学习如何选择一个特定的单元格。

当然,这非常简单,我们只需要对我们希望从dataframe中获取的行和列使用一个整型索引值即可。例如,如果我们要选择第0行和第0列中的数据,我们只需键入df1.iloc[0, 0]。

9a667fb226a736617994701f0e97ea10.png

当然,我们也可以选择多行和/或多列。为此,我们只需添加一个包含我们希望iloc为我们选择的整数索引的列表。

例如,如果我们想要选择第4行和第2、3、4列中的数据,我们只需使用以下代码:

69bfde21066eb6caf57a91a044d2af13.png

检索单元格的子集

在下一个iloc例子中,我们将从来自dataframe的单元格中获取一个子集。

要实现这一点,我们需要组合使用iloc获取一个列切片和一个行切片:

b3fe87a04cee88f72bf1fb6d0bd04c1c.png

使用布尔掩码选择列

在最后一个例子中,我们将使用一个布尔掩码来选择列。要这样做,我们当然需要知道有多少列,以及我们想要选择哪些列。

4b0300c6a4b285b54da20072da427625.png

如何使用Pandas loc

在本节中,我们将介绍另一个Pandas方法,即用于从dataframe中选择数据的loc。

4ab57d9eac932f003af9ee6dc7047736.png

何时使用loc?

记住,iloc使用位置引用作为参数输入,而loc使用索引作为参数。由于loc接受索引,我们可以传递字符串(例如列名)作为一个参数,而如果我们在iloc中使用字符串时,它会抛出一个错误。因此,什么时候使用Pandas loc呢?答案就是当我们知道了索引名时。

在本loc教程中,我们将使用以下输入:

  • 单个标签,例如2或' b '。

    值得注意的是,Pandas会将2解释为一个索引的标签,而不是索引上的整数位置(与iloc相反)

  • 一个标签列表,例如[‘a’, ‘b’, c’]

  • 一个带有标签的切片对象,例如‘shortname’:’SASname’。重要的是,当涉及到切片时,当我们使用loc时,开始和停止位置都包括在内

使用Pandas loc选择一行

在第一个Pandas loc例子中,我们将从索引为1的行中选择数据。

9be5cf415f3b6187e83bf7d785e52ade.png

注意,在上面的例子中,第一行的名称为“1”。也就是说,这个“1”不是索引整数,而是该行的名字。

Pandas loc的行为方式与iloc相同,我们单个行作为series进行检索。与使用Pandas iloc一样,我们可以更改输出,以便以一个 dataframe来获取单个行。我们通过在一个列表中放入行名来做到这一点:

b56fe00b9638eb817452d3da26713995.png

使用loc对行进行切片

在下一个代码例子中,我们将使用行名称来获取一个行切片。

5eba0519d4a15eddca34374f5fdbfc58.png

我们还可以将一个索引列表传递给它,以选择所需的索引。

71fd40082b6779903bca7a583889de37.png

使用loc通过列名进行选择

与Pandas iloc不同,loc则进一步采用列名作为列参数。这意味着我们可以给它传递一个列名来从该列中选择数据。

在下一个loc例子中,我们将从' SASname '列中选择所有数据。

b95b7933ce8ce94fcab2c105999b4bd8.png

当然,另一个选项是在使用loc时将多个列名传入一个列表中。在下一个例子中,我们将从“SASname”和“longname”列中选择数据,其中行名是从1到5。

c4583b520cbe8ebb86c781b6125b773a.png

在Pandas中使用loc进行切片

在本节中,我们将会看到如何使用loc对一个Pandas dataframe进行切片。记住,“:”字符是在切片时使用的。与iloc一样,我们也可以进行切片,只不过这里我们可以使用列名和行名(如下面的例子所示)。

在下面的loc例子中,我们再次使用了第一个dataframe(即df1),对前5行切片,并获取从“Film”列到“EA1”列的所有列。

1df7c0df5e225665e26ea518778699a1.png

Pandas iloc 和条件

很多时候,我们想要通过使用布尔数组来索引一个Pandas dataframe。也就是说,我们可能希望根据某些条件来选择数据。当然,这很容易用Pandas loc来实现。我们只需要向.loc方法传递一个包含真/假值的数组或Seris。

例如,如果我们想要选择Study列中值为“flat”的所有行,我们将按照以下步骤来创建一个Pandas Series,其中的dataframe中的每一行都有一个真值,其中存在“flat”。

b85c0faee2bfaacf048128a25e930c0e.png

使用多条件Pandas iloc选择行

此外,有时我们可能希望基于多个条件进行选择。例如,如果我们想要选择Study列是“flat”并且neur列大于18的所有行,我们可以按下一个例子来做:

d2061704c3435136dc51e7dc752a95f5.png

与前面一样,我们可以使用第二个参数从dataframe中选择特定的列。请记住,在使用Pandas loc时,列是通过名称被loc索引器引用的,我们可以使用一个单个字符串、一个列的列表或一个切片“:”操作。在下一个例子中,我们将选择从EA1到NA2的列:

59457daa01e08babcce248d4bbf0b7ce.png

使用 .loc设置dataframe中的值

在本loc和iloc教程的最后一节中,我们将学习如何使用loc对dataframe设置值。

对一个dataframe设置值是非常简单的,我们需要做的只是稍微更改一下语法,并且我们实际上可以在使用.loc 索引器选择和筛选的同一语句中来更新数据。这很方便,因为我们可以根据不同的条件来更新列中的值。

在最后一个loc例子中,我们将创建一个新列(NewCol),并在neur大于18的行中添加单词“BIG”:

42da68bc7b735248a7fc73e554177b94.png

结论

在这个Pandas iloc和loc教程中,我们学习了使用loc和iloc方法建立索引、选择数据和选取子集。更具体地说,我们已经了解了这些方法是如何工作的。当谈到loc时,我们已经学习了如何根据条件语句(例如,大于或等于)去选择数据,以及如何使用loc去设置值。

英文原文:https://www.marsja.se/how-to-use-iloc-and-loc-for-indexing-and-slicing-pandas-dataframes/ 
译者:测试

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机发电脑邮箱未开启服务器,手机邮箱无法发送和接收邮件时发生了什么

你好&#xff01;您是2113&#xff0c;是通过手机自己的电子邮件添加5261邮箱4102吗&#xff1f;我介绍了QQ邮箱的添加&#xff0c;您必须打开接收1653并发送服务.您可以在设置---添加帐户中找到邮件首先&#xff0c;您需要登录到邮箱的Web版本&#xff0c;并在帐户中设置设置P…

android 上下数字滚动_原来PPT数字还有这么高大上的展示方式

数字&#xff0c;是PPT当中非常重要的元素&#xff0c;说明价格、呈现销量、展示性能等等多种场合都有使用&#xff0c;数据也是PPT当中最直观的表现形式。那么&#xff0c;PPT当中的数字要怎么表现才显得高逼格呢&#xff1f;在这里介绍一个小技巧&#xff1a;动态滚动展示。先…

kettle中过滤记录中时间_Kettle中Step:Text file outpout功能

${Internal.Transformation.Filename.Directory}/上面的办法是在当前Transformation下生成文件路径。导出的数据不被Tableau认可&#xff0c;这比较奇怪&#xff0c;虽然用编辑器打开都在。在某个案例中看到&#xff0c;在导出的标题中有Excel的换行&#xff0c;取得后没有改。…

quill鼠标悬浮 出现提示_「超逸酷玩」VT300S RGB电竞游戏鼠标支持云同步自定义设置...

说到鼠标大家一定不会陌生&#xff0c;根据大家使用环境的不同&#xff0c;对于鼠标体验需求也在逐步提升&#xff0c;在游戏方面虽然市面上也推出很多无线鼠标产品&#xff0c;但是有线电竞鼠标硬件设计和软件功能上还是有很大的优势&#xff0c;雷柏VT300S是一款RGB电竞鼠标&…

风之大陆 服务器不稳定,《风之大陆》手游官网——异世界奇幻冒险MMO手游

勇敢的守护者&#xff1a;为给您提供更好的游戏体验&#xff0c;游戏服务器将于2021年5月20日6:00起进行更新维护本次更新维护预计需要60分钟&#xff0c;根据维护进度可能提前或延迟开服。在服务器维护期间&#xff0c;您将无法登入游戏&#xff0c;请您及时下线&#xff0c;以…

catia测量工具小尺子在哪_小区垃圾桶旁捡来旧茶几,老爸巧手改成沙发,邻居一个劲问哪买的...

前几天老爸在小区垃圾桶旁边捡回来一个旧茶几&#xff0c;又脏又破都掉漆了&#xff0c;捡回来用不了还占地方&#xff0c;他却非说要动手将它改成个小沙发。那么麻烦还不如直接买一个&#xff0c;但最后改出来的效果还不错&#xff0c;关键是便宜&#xff0c;不到50块钱比定制…

numpy创建三维空数组_numpy数组的创建和属性转换

一、数据与numpy数组的创建1、 python数组的创建python中的固定类型数组&#xff1a;python中提供了几种将数组存储在有效的、固定类型的数据缓存中的选项。内置的数组&#xff08;array&#xff09;模块可以创建按统一类型的密集数组&#xff1a;这里的“i”表示的是一个数据类…

各类木材强度_凯狄解析各类抽芯铆钉的工作原理

开口型抽芯铆钉&#xff1a;铆钉铆接后&#xff0c;钉芯在钉芯头与钉芯杆交接处或其附近断裂&#xff0c;钉芯头和一小部分钉芯杆留在铆钉体中。其抗剪强度类似于空心铆钉连接。封闭型抽芯铆钉&#xff1a;铆钉铆接后仍保持封闭的铆钉体。在铆钉体与被连接件的接触面之间采取密…

ppt流程图字体太小_简单三步,用WPS轻松完成一个又大气又好看的流程图!

点击蓝字 关注我们流程图是工作中经常需要用到的图形&#xff0c;使用 WPS 可以方便地创建流程图。创建的流程图保存在云文档后&#xff0c;可以随时插入 WPS 的其他组件。新建流程图文件流程图可以从 WPS 的其他组件中创建&#xff0c;如 WPS 文字、WPS 表格等&#xff0c;也可…

class传参 python_Python类的概念、定义、属性、继承

1.面向对象(Object Oriented,OO)概念面向对象&#xff0c;是我们编程的一种思维。早期的计算机编程是基于面向过程的方法&#xff0c;例如实现算术运算112 4&#xff0c;通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高&#xff0c;计算机被用于解决越来越复…

4x4矩阵键盘工作原理及扫描程序_单片机人机交互矩阵按键

按键是一种常开型按钮开关&#xff0c;与单片机的常见接法如图所示。按键未按下时两个触点断开&#xff0c;单片机I/O口输入高电平&#xff1b;当按键闭合时&#xff0c;I/O口输入低电平。一、按键讲解当I/O口为P0口时&#xff0c;由于没有内部上拉电阻&#xff0c;所以必须外接…

android给数组添加新元素_重磅!超详细的 JS 数组方法整理出来了

作者&#xff1a;Yushiahttps://juejin.cn/post/6907109642917117965数组是 js 中最常用到的数据集合&#xff0c;其内置的方法有很多&#xff0c;熟练掌握这些方法&#xff0c;可以有效的提高我们的工作效率&#xff0c;同时对我们的代码质量也是有很大影响。一、创建数组1.使…

小米登录协议分析_性能测试篇之Loadrunner与ida工具结合完成java vuser协议的脚本...

你这么优秀&#xff0c;一定只想把“柠檬班”置顶▲→性能3期优秀作业利用lr的java vuser协议完成(登录&#xff0c;md5加密完成重置支付密码&#xff0c;获取订单列表)请求&#xff0c;并加if判断完善脚本本文由柠檬班性能3期学员eleven根据作业原创出品。1工作准备jdk版本的选…

发动机压缩比怎么计算公式_2020沃德十佳发动机出炉:这三款机头,20万内就能买到...

引言 | 内燃机最后的巅峰&#xff1f;《Wards Auto World》每年都会发布沃德十佳发动机榜单&#xff0c;2020年度的榜单早在去年底已经出炉&#xff0c;但小编觉得仍有可讲之处。考虑到老美特殊的驾驶环境&#xff0c;地广人稀&#xff0c;基础设施齐全&#xff0c;人工费奇高&…

计算ln_钢筋工程算量培训-钢筋工程量计算公式

框架梁一首跨钢筋的计算1、上部贯通筋上部贯通筋&#xff08;上通长筋1&#xff09;长度&#xff1d;通跨净跨长&#xff0b;首尾端支座锚固值2、端支座负筋端支座负筋长度&#xff1a;第一排为Ln/3&#xff0b;端支座锚固值&#xff1b;第二排为Ln/4&#xff0b;端支座锚固值3…

智能照明控制系统电路图_咻享智能|学校教室智能照明控制系统怎么理解

教室是学校照明用电的主要部分。教室灯光照度设计标准为室内平均照度300 lx&#xff0c;这样高的照度要求&#xff0c;如果没有合理控制方案&#xff0c;能源上将造成巨大的浪费。因此将智能照明控制系统应用于普通教室、阶梯教室具有相当的实际意义。对于学校而言&#xff0c;…

redis关键字删除_微信公众号文章防删除

阅读本文大概需要 3.6 分钟。前段时间《一个出身寒门的状元之死》刷屏了&#xff0c;当我看完了这篇文章&#xff0c;很有感触&#xff0c;一开始我以为是事实&#xff0c;后来才发现完全是虚构&#xff0c;对于我来讲并不是非常在乎文章中的故事是否是真实的&#xff0c;我在乎…

java单链表节点翻转_Java数据结构01-链表基础(讲解+代码+面试题)

文章结构链表的概念/用处链表的基本代码实现&#xff08;韩顺平Java数据结构网课&#xff09;剑指offer上链表题目代码实现&#xff08;个人手敲&#xff0c;更精巧的答案可以参考官网&#xff09;链表链表包含单链表&#xff0c;双向链表&#xff0c;循环链表等等。相对于线性…

分解连续自然数的和_小学奥数各年级经典题解题技巧大全——分解因数法(2)...

*例7&#xff1a;在等式35( )8127718( )162的两个括号中&#xff0c;填上适当的最小的数。(适于六年级程度)解&#xff1a;将已知等式的两边分解质因数&#xff0c;得&#xff1a;5377( )22367( )把上面的等式化简&#xff0c;得&#xff1a;15( )4( )所以&a…

即席和即兴_即兴说话小课堂

即 兴 说 话 小 课 堂了解发音的小知识&#xff0c;运用语言技巧&#xff0c;通过音色、音强&#xff0c;来达到的一种发音。发音的能力&#xff0c;更重要的是提高自己的普通话水平&#xff0c;锻炼自己的综合能力。师兄的课堂是非常难得&#xff0c;大家一起来学习吧&a…