【python数据分析基础】—pandas中loc()与iloc()的介绍与区别
文章目录
- 前言
- 一、loc[]函数
- 二、iloc[]函数
- 三、详细用法
- loc方法
- iloc方法
- 总结
- 共同点
- 不同点
前言
我们经常在寻找数据的某行或者某列的时常用到Pandas中的两种方法iloc和loc,两种方法都接收两个参数,第一个参数是行的范围,第二个参数是列的范围。
一、loc[]函数
- loc:
- 接收的是行、列的名称或标签。
- 在切片是按闭区间切片,也就是区间两边都能取到。
二、iloc[]函数
- iloc:
- 接收的是行、列的索引位置(下标,从0开始)。
- 按传统的左闭右开的的方式切片。
三、详细用法
创建用于测试的数据表dataframe:
import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}frame=pd.DataFrame(data)
frame.index=list('abcde')
frame
loc方法
- 1、单个行名/列名 或 行名/列名的列表
要求:读取第2行,行名为’b’。
frame.loc['b']
注意: 上面这种写法,运行"print(type(frame.loc[‘b’]))"可以知道返回的是<class ‘pandas.core.series.Series’>对象,如果要<class ‘pandas.core.frame.DataFrame’>对象可以改成frame.loc[[‘b’]]。
frame.loc[['b']]
要求:取第1、2列的第2与第5行,第1、2列的列名分别为’state’与’year’,第2、5行的行名分别为’b’和’e’。
frame.loc[['b','e'],['state','year']]
- 2、列名/行名的切片
要求:读取第2列,列名为’year’。
frame.loc[:,'year'] #返回的是<class 'pandas.core.series.Series'>对象。
frame.loc[:,['year']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
要求:取第2行第3列,第2行行名为’b’,第3列列名为’pop’。
frame.loc['b','pop']
要求:读取dataframe某个区域,比如第3列的第2到第5行,第3列为"pop"列,第2到第5行即b行到e行。
frame.loc['b':'e','pop'] #返回的是<class 'pandas.core.series.Series'>对象。
frame.loc['b':'e',['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
要求:取第1、2列的第2到第5行,第1、2列的列名分别为’state’和’yea‘列,第2、5行的行名为’b’和‘e’行。
frame.loc['b':'e','state':'year'] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
- 3、返回布尔型列表的表达式(判断或函数)
要求:根据判断条件读取,取第3列大于2的。
frame.loc[frame['pop']>2,'pop'] #返回的是<class 'pandas.core.series.Series'>对象。
frame.loc[frame['pop']>2,['pop']] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
要求:根据函数读取,取第3列大于2的所有行与列。
frame.loc[lambda x: x['pop']>2]
iloc方法
- 1、单个下标 或 若干下标构成的列表,从0开始。
要求:取第2行的值。
frame.iloc[1]
注意: 上面这种写法,运行"print(type(frame.iloc[1]]))"可以知道返回的是<class ‘pandas.core.series.Series’>对象,如果要<class ‘pandas.core.frame.DataFrame’>对象可以改成frame.iloc[[1]]。
frame.iloc[[1]]
要求:取第1、2列的第2与第5行。
frame.iloc[[1,4],[0,1]]
- 2、下标的切片
要求:取第2列的值。
frame.iloc[:,1] #返回的是<class 'pandas.core.series.Series'>对象。
frame.iloc[:,[1]] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
要求:取第2行第3列
frame.iloc[1,2]
要求:读取dataframe某个区域,比如第3列的第2到第5行。
frame.iloc[1:5,2] #返回的是<class 'pandas.core.series.Series'>对象。
frame.iloc[1:5,[2]] #返回的是<class 'pandas.core.frame.DataFrame'>对象。
要求:取第1、2列的第2到第5行。
frame.iloc[1:5,0:2] #因为是.iloc[]中用:表示从第几行/列到第几行/列是左闭右开的的方式,因此这里下标3表示第四行与第四列是取不到的。frame.iloc[[1,2,3,4],[0,1]] #第二种写法
- 3、可以返回合理值的函数
要求:当DataFrame的index是整数,取index为偶数的记录。
import pandas as pd
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}frame=pd.DataFrame(data)
frameframe.iloc[lambda x: x.index % 2 == 0]
总结
共同点
- 两者都接收两个参数,第一个参数是行的范围,第二个参数是列的范围。
- 两者都可以有行索引值没有列索引值,但有列索引值前必须得有行索引值,但loc[]行索引值只能为名称形式来取,不能按下标形式来取。iloc[]则相反。
取第三列,无论使用loc[]函数还是iloc[]函数,如果没有行索引都会报错。
frame.loc['pop']
frame.loc[,'pop']
frame.iloc[,3]
不同点
-
1、loc[]函数接收的是行/列的名称(可以是整数或者字符),iloc[]函数接收的是行/列的下标(从0开始),不能是字符。
-
2、loc[]函数在切片时是按闭区间切片的,也就是区间两边都能取到,iloc[]函数则是按传统的左闭右开的方式切片的。
参考文章:
https://blog.csdn.net/weixin_43298886/article/details/112632237
https://blog.csdn.net/Leon_Kbl/article/details/97492966
相关文章:
【python数据分析基础】—pandas中loc()与iloc()的介绍与区别
文章目录 前言一、loc[]函数二、iloc[]函数三、详细用法loc方法iloc方法 总结共同点不同点 前言 我们经常在寻找数据的某行或者某列的时常用到Pandas中的两种方法iloc和loc,两种方法都接收两个参数,第一个参数是行的范围,第二个参数是列的范…...
ad18学习笔记十一:显示和隐藏网络、铺铜
如何显示和隐藏网络? Altium Designer--如何快速查看PCB网络布线_ad原理图查看某一网络的走线_辉_0527的博客-CSDN博客 AD19(Altium Designer)如何显示和隐藏网络 如何显示和隐藏铺铜? Altium Designer 20在PCB中显示或隐藏每层铺铜-百度经验 AD打开与…...
全国职业技能大赛云计算--高职组赛题卷④(私有云)
全国职业技能大赛云计算--高职组赛题卷④(私有云) 第一场次题目:OpenStack平台部署与运维任务1 基础运维任务(5分)任务3 OpenStack云平台运维(15分)任务4 OpenStack云平台运维开发(1…...
Camera Tunning ISP 模块面试总结
一.ISP的调试流程概述: 在ISP调试流程中,我们首先需要确认以下三个方面:项目需求、硬件问题确认和Sensor驱动配置确认。 项目需求方面,即Sensor需要出多大的分辨率去调效果;因为有些芯片有最大分辨率支持的限制&#x…...
AOSP源码中Android.mk文件中的反斜杠符号(\)的作用和使用
简介 在AOSP(Android Open Source Project)源码中的Android.mk文件中,反斜杠符号(\)的主要作用是将一行代码拆分成多行,以提高可读性并帮助组织较长的代码块。这对于定义复杂的构建规则和变量时特别有用。…...
如何查看mysql的存储引擎
要查看MySQL中的存储引擎,可以使用以下两种方法: 1. 使用 SQL 查询: 您可以使用SQL查询来查看MySQL中的存储引擎。打开MySQL客户端,并连接到您的MySQL服务器,然后运行以下SQL查询: SHOW TABLE STATUS;这…...
FPGA project : dht11 温湿度传感器
没有硬件,过几天上板测试。 module dht11(input wire sys_clk ,input wire sys_rst_n ,input wire key ,inout wire dht11 ,output wire ds ,output wire …...
std::string和QString的区别以及互转
一 区别 1.字符编码支持 std::string:默认情况下,使用 ASCII 或 UTF-8 编码。不直接提供对多字节字符的内置支持。 QString:提供对多种字符编码的支持,包括 ASCII、UTF-8、UTF-16 等。它更适合处理国际化和本地化的字符串。 2.…...
python+vue理发店管理系统
理发店管理系统主要实现角色有管理员和会员,管理员在后台管理用户表模块、token表模块、收藏表模块、商品分类模块、热卖商品模块、活动公告模块、留言反馈模块、理发师模块、会员卡模块、会员充值模块、会员模块、服务预约模块、服务项目模块、服务类别模块、热卖商品评论表模…...
基于微信小程序的个人健康管理系统的设计与实现(源码+lw+部署文档+讲解等)
前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…...
共聚焦显微镜在化学机械抛光课题研究中的应用
两个物体表面相互接触即会产生相互作用力,研究具有相对运动的相互作用表面间的摩擦、润滑与磨损及其三者之间关系即为摩擦学,目前摩擦学已涵盖了化学机械抛光、生物摩擦、流体摩擦等多个细分研究方向,其研究的数值量级也涵盖了亚纳米到百微米…...
本地Linux 部署 Dashy 并远程访问
文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章:本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…...
互联网摸鱼日报(2023-09-18)
互联网摸鱼日报(2023-09-18) 36氪新闻 最前线 | 号外电摩12.68万元起订,配16.9度一体压铸电池包 本周双碳大事:CCER交易管理办法获生态环境部原则通过;明阳斥资100亿元加码光伏项目;“全路程”获2亿元D轮融资 200亿,…...
Kotlin中函数的基本用法以及函数类型
函数的基本用法 1、函数的基本格式 2、函数的缺省值 可以为函数设置指定的初始值,而不必要传入值 private fun fix(name: String,age: Int 2){println(name age) }fun main(args: Array<String>) {fix("张三") }输出结果为:张三2 …...
在macOS使用VMware踩过的坑
目录 MAC提示将对您的电脑造成伤害/MAC OS 升级到10.15.3后vmware虚拟机黑屏 mac系统下,vm虚拟机提示打不开/dev/vmmon mac VMware Workstation 在此主机上不支持嵌套虚拟化 mac VMware清理虚拟机空间 MAC提示将对您的电脑造成伤害/MAC OS 升级到…...
构建健壮的Spring MVC应用:JSON响应与异常处理
目录 1. 引言 2. JSON 1. 轻量级和可读性 2. 易于编写和解析 3. 自描述性 4. 支持多种数据类型 5. 平台无关性 6. 易于集成 7. 社区支持和标准化 3. 高效处理异常 综合案例 异常处理方式一 异常处理方式二 异常处理方式三 1. 引言 探讨Spring MVC中关键的JSON数据…...
那些配置服务器踩的坑
最近在配置内网,无外网的服务器,纯纯记录一下踩得坑,希望看到的人不要再走这条弯路。 ------------------------------------------------------------------------------------------------------------------------------- 任务ÿ…...
交换机端口镜像详解
交换机端口镜像是一种网络监控技术,它允许将一个或多个交换机端口的网络流量复制并重定向到另一个端口上,以便进行流量监测、分析和记录。通过端口镜像,管理员可以实时查看特定端口上的流量,以进行网络故障排查、安全审计和性能优…...
Spring源码分析(三) IOC 之 createBean()和doCreateBean()
a、在createBean中又是主要做了什么事情? 完成bean得创建,填充属性、循环依赖 、aop等一系列过程 1、createBean() 在createBean中主要干了3件事情 1、解析class -> resolveBeanClass() 2、验证及准备覆盖的方法,lookup-method replace-method -> …...
【鸿蒙(HarmonyOS)】UI开发的两种范式:ArkTS、JS(以登录界面开发为例进行对比)
文章目录 一、引言1、开发环境2、整体架构图 二、认识ArkUI1、基本概念2、开发范式(附:案例)(1)ArkTS(2)JS 三、附件 一、引言 1、开发环境 之后关于HarmonyOS技术的分享,将会持续使…...
Flink中的批和流
批处理的特点是有界、持久、大量,非常适合需要访问全部记录才能完成的计算工作,一般用于离线统计。 流处理的特点是无界、实时, 无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作,一般用于实时统计。 而在Flin…...
【LeetCode-中等题】150. 逆波兰表达式求值
文章目录 题目方法一:栈 题目 方法一:栈 class Solution {public int evalRPN(String[] tokens) {Deque<Integer> deque new LinkedList<>();String rpn "-*/";//符号集 用来判断扫描的是否为运算符int sum 0;for(int i 0 ; i…...
搭建ELK+Filebead+zookeeper+kafka实验
部署 Zookeeper 集群 准备 3 台服务器做 Zookeeper 集群 192.168.10.17 192.168.10.21 192.168.10.22 1.安装前准备 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 安装 JDK yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-…...
java专题练习(抢红包)
package 专题练习;import java.util.Random;public class grab_red_packet {/* 需求:直播抽奖,分别由{2,588,888,1000,10000}五个奖金,请用代码模拟抽奖,奖项出现顺序要随机且不重复打印效果:588元的奖金被抽出*///思路://1. 先用数组把奖金定义好//2. 用random方法给出随机数索…...
AVR 单片机 调试环境 JTAG MKII
注意 驱动 的厂家: 如果驱动备改变为其他厂家的驱动 就与 AVR Studio7不兼容 保证驱动选择正确是 能够使用硬件调试的关键 如果驱动不对,使用 USB驱动修改工具 修改 比如 UsbDriverTool.exe...
C++ - AVL树实现(下篇)- 调试小技巧
前言 本博客是 AVL树的下篇,上篇请看:C - AVL 树 介绍 和 实现 (上篇)_chihiro1122的博客-CSDN博客 上篇当中写插入操作,和其中涉及的 旋转等等细节,还有AVL树的大体框架。 调试小技巧 条件断点 在大项目…...
Mybatis懒加载
懒加载是什么? 按需加载所需内容,当调用到关联的数据时才与数据库交互否则不交互,能大大提高数据库性能,并不是所有场景下使用懒加载都能提高效率。 Mybatis懒加载:resultMap里面的association、collection有延迟加载功…...
DSOX3012A是德科技keysight DSOX3012A示波器
181/2461/8938是德科技DSOX3012A(安捷伦)示波器 是德科技DSOX3012A(安捷伦)是InfiniiVision 3000 X系列中的双通道型号。这款可升级示波器采用突破性技术设计,提供卓越的性能和功能。其独特的5仪器合一设计为相同的预算提供了更大的范围。 是德科技DSOX3012A示波器…...
基于网络表示学习的 新闻推荐算法研究与系统实现
摘要 第1章绪论 新闻推荐通常是利用用户的阅读行为和习惯、阅读选择和爱好等信息,为 用户推荐新闻内容。新闻推荐能够减少用户在数量庞大数据信息中获取信息的 时间消耗,从而能够缓解“信息过载[7]”的难题。以文本为内容的新闻,和商品、 电影、短视频等推荐系统相比,新闻推…...
<Altium Designer> 将.DSN文件导入并转换成SchDoc文件
目录 01 使用向导方式导入.DSN 02 消除Unique Identifiers Errors 03 文章总结 大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。 本文主要是总结和分享将OrCAD Capture画的原理图文件(.DSN)导入到Altium Designer,转换成对应的原理图文件…...
网站后台管理功能/百度推广基木鱼
缩放 out im.resize((128, 128))逆时针旋转一定的度数(需要注意这个方法不会在 img 对象上做 in-place 的操作,而是返回一个转换后的新对象:out out.rotate(45)要按 90 度的整数倍来旋转图片的话,也可以用 transpose 方法transpo…...
做网站用哪个操作系统稳定/智慧软文发布系统
docker exec :在运行的容器中执行命令 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 实例 在容器mynginx中以交互模式执行容器内/root/runoob.sh…...
龙华做网站多少钱/seo培训学什么
union合并后,去除重复的数据; union all 合并后,包含重复的数据。...
提交网站/近期热点新闻事件
利用java打开一张图片,并提取其边缘。功能有打开文件,以及提取边缘。算法原理由于边缘提取的算法有很多种,而提取的精度在相同阈值的情况下也会有不同的结果。这次我的边缘提取使用索贝尔算子(Sobel operator)。该算子会把图像每一点的灰度矢…...
门户网站开发用什么框架好/参考网是合法网站吗?
摘要:机器人技术是当今世界备受关注的前沿课题,伴随着近年来人工智能技术不断的发展,机器人技术也成为了一个令人浮想联翩的技术领域。本文以大家喜闻乐见的中国传统的非完备信息二人军棋计算机博弈作为研究对象,军棋博弈的每方拥有25个棋子、12种类型棋子,每个棋子…...
asp.net做动态网站/成都seo优化
进来看了看keras, 比tf友好的多啊,总结下: Keras有两种类型的模型,顺序模型(Sequential)和泛型模型(Model) 首先比较简单的顺序型 Sequential模型接口 代码示例 model Sequential() model.a…...