当前位置: 首页 > news >正文

Pandas使用 `iloc` 和 `loc` 常见用法汇总

文章目录

      • `df.iloc` 常见用法
        • 1. 获取特定行
        • 2. 获取特定列
        • 3. 获取特定的行和列
        • 4. 获取行切片
        • 5. 获取列切片
        • 6. 获取特定的行和列切片
      • `df.loc` 常见用法
        • 1. 获取特定行
        • 2. 获取特定列
        • 3. 获取特定的行和列
        • 4. 获取行切片
        • 5. 获取列切片
        • 6. 获取特定的行和列切片
      • 示例代码

df.ilocdf.loc 是 Pandas 中用于选择数据的两个重要函数。 df.iloc 基于整数位置索引,而 df.loc 基于标签(标签索引)选择数据。以下是它们的常见用法汇总:

df.iloc 常见用法

df.iloc 是基于整数位置的选择方法,用于按位置索引选择数据。

1. 获取特定行
  • 获取第一行

    first_row = df.iloc[0]
    

    获取 DataFrame 的第一行。

  • 获取最后一行

    last_row = df.iloc[-1]
    

    获取 DataFrame 的最后一行。

2. 获取特定列
  • 获取第一列

    first_column = df.iloc[:, 0]
    

    获取 DataFrame 的第一列。

  • 获取最后一列

    last_column = df.iloc[:, -1]
    

    获取 DataFrame 的最后一列。

3. 获取特定的行和列
  • 获取第一行和第一列的值

    value = df.iloc[0, 0]
    

    获取 DataFrame 的第一行第一列的值。

  • 获取最后一行和最后一列的值

    value = df.iloc[-1, -1]
    

    获取 DataFrame 的最后一行最后一列的值。

4. 获取行切片
  • 获取前五行

    first_five_rows = df.iloc[:5]
    

    获取 DataFrame 的前五行。

  • 获取最后三行

    last_three_rows = df.iloc[-3:]
    

    获取 DataFrame 的最后三行。

5. 获取列切片
  • 获取前两列

    first_two_columns = df.iloc[:, :2]
    

    获取 DataFrame 的前两列。

  • 获取从第二列到第四列

    middle_columns = df.iloc[:, 1:4]
    

    获取 DataFrame 的第二列到第四列(不包括第四列)。

6. 获取特定的行和列切片
  • 获取前两行和前两列

    first_two_rows_and_columns = df.iloc[:2, :2]
    

    获取 DataFrame 的前两行和前两列。

  • 获取最后两行和最后两列

    last_two_rows_and_columns = df.iloc[-2:, -2:]
    

    获取 DataFrame 的最后两行和最后两列。

df.loc 常见用法

df.loc 是基于标签(标签索引)的选择方法,用于按标签选择数据。

1. 获取特定行
  • 获取特定标签行
    row = df.loc['row_label']
    
    获取 DataFrame 中标签为 'row_label' 的行。
2. 获取特定列
  • 获取特定标签列
    column = df.loc[:, 'column_label']
    
    获取 DataFrame 中标签为 'column_label' 的列。
3. 获取特定的行和列
  • 获取特定标签的行和列的值
    value = df.loc['row_label', 'column_label']
    
    获取 DataFrame 中标签为 'row_label' 的行和 'column_label' 的列的值。
4. 获取行切片
  • 获取标签范围内的行
    rows = df.loc['start_label':'end_label']
    
    获取 DataFrame 中从 'start_label''end_label' 的行。
5. 获取列切片
  • 获取标签范围内的列
    columns = df.loc[:, 'start_column':'end_column']
    
    获取 DataFrame 中从 'start_column''end_column' 的列。
6. 获取特定的行和列切片
  • 获取特定标签范围内的行和列
    rows_and_columns = df.loc['start_label':'end_label', 'start_column':'end_column']
    
    获取 DataFrame 中从 'start_label''end_label' 的行和从 'start_column''end_column' 的列。

示例代码

import pandas as pd# 创建一个示例 DataFrame
data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50], 'C': [100, 200, 300, 400, 500]}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e'])# iloc 示例
first_row = df.iloc[0]
last_row = df.iloc[-1]
first_column = df.iloc[:, 0]
last_column = df.iloc[:, -1]
value = df.iloc[0, 0]
first_five_rows = df.iloc[:5]
last_three_rows = df.iloc[-3:]
first_two_columns = df.iloc[:, :2]
middle_columns = df.iloc[:, 1:3]
first_two_rows_and_columns = df.iloc[:2, :2]
last_two_rows_and_columns = df.iloc[-2:, -2:]# loc 示例
row = df.loc['a']
column = df.loc[:, 'A']
value = df.loc['a', 'A']
rows = df.loc['a':'c']
columns = df.loc[:, 'A':'B']
rows_and_columns = df.loc['a':'c', 'A':'B']print("First row using iloc:")
print(first_row)
print("\nLast row using iloc:")
print(last_row)
print("\nFirst column using iloc:")
print(first_column)
print("\nLast column using iloc:")
print(last_column)
print("\nValue at first row and first column using iloc:")
print(value)
print("\nFirst five rows using iloc:")
print(first_five_rows)
print("\nLast three rows using iloc:")
print(last_three_rows)
print("\nFirst two columns using iloc:")
print(first_two_columns)
print("\nMiddle columns using iloc:")
print(middle_columns)
print("\nFirst two rows and columns using iloc:")
print(first_two_rows_and_columns)
print("\nLast two rows and columns using iloc:")
print(last_two_rows_and_columns)print("\nRow 'a' using loc:")
print(row)
print("\nColumn 'A' using loc:")
print(column)
print("\nValue at row 'a' and column 'A' using loc:")
print(value)
print("\nRows 'a' to 'c' using loc:")
print(rows)
print("\nColumns 'A' to 'B' using loc:")
print(columns)
print("\nRows 'a' to 'c' and columns 'A' to 'B' using loc:")
print(rows_and_columns)

这个代码示例展示了如何使用 ilocloc 进行各种常见的数据选择操作。

相关文章:

Pandas使用 `iloc` 和 `loc` 常见用法汇总

文章目录 df.iloc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 df.loc 常见用法1. 获取特定行2. 获取特定列3. 获取特定的行和列4. 获取行切片5. 获取列切片6. 获取特定的行和列切片 示例代码 df.iloc 和 df.lo…...

【linux服务器】大语言模型实战教程:LLMS大模型快速部署到个人服务器

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 说到大语言模型相信大家都不会陌生,大型语言模型(LLMs)是人工智能文本处理的主要类型,也现在最流行的人工智能…...

Windows 32 汇编笔记(二):使用 MASM

一、Win32 汇编源程序的结构 ; Hello.asm ; 使用 Win32 ASM 写的 Hello, world 程序 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>…...

手机和电脑通过TCP传输(一)

一.工具 手机端:网络调试精灵 电脑端:野火网络调试助手 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信…...

Sentinel规则持久化Push模式两种实现方式

文章目录 sentinel持久化push推模式微服务端的实现具体实现源码分析读数据源写数据源的实现 微服务端解析读数据源流程 修改源码的实现官方demo修改源码实现配置类flowauthoritydegreadparamsystemgateway修改源码 测试补充 前置知识 pull模式 sentinel持久化push推模式 pull拉…...

Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解

1. 引言 在微服务架构中,服务的弹性是非常重要的。Resilience4j 是一个轻量级的容错库,专为函数式编程设计,提供了断路器、重试、舱壁、限流器和限时器等功能。 这里不做过多演示,只是查看一下官方案例并换成maven构建相关展示&…...

Hadoop3:MR程序压测实验

一、环境要求 内存:128G CPU:32C 磁盘:8T 注:一个虚拟机不超过150G磁盘尽量不要执行这段代码 二、案例 1、需求 使用Sort程序评测MapReduce 2、操作步骤 1、使用RandomWriter来产生随机数,每个节点运行10个Map任…...

初学者如何通过建立个人博客盈利

建立个人博客不仅能让你在网上表达自己,还能与他人建立联系。通过博客,可以创建自己的空间,分享想法和故事,并与有相似兴趣和经历的人交流。 本文将向你展示如何通过建立个人博客来实现盈利。你将学习如何选择博客主题、挑选合适…...

构建稳健性:如何在Gradle中配置构建失败时的行为

构建稳健性:如何在Gradle中配置构建失败时的行为 在软件开发过程中,构建失败是不可避免的。然而,如何优雅地处理构建失败并从中恢复,是提高开发效率和软件质量的关键。Gradle,作为一款强大的构建工具,提供…...

大语言模型-基础及拓展应用

一、基础模型 1、Transformer 2、bert 3、gpt 二、大语言模型 三、句子向量 四、文档解析 1、通用解析 2、docx解析 3、 pdf解析 4、pptx解析 五、向量数据库...

STM32使用Wifi连接阿里云

目录 1 实现功能 2 器件 3 AT指令 4 阿里云配置 4.1 打开阿里云 4.2 创建产品 4.3 添加设备 5 STM32配置 5.1 基础参数 5.2 功能定义 6 STM32代码 本文主要是记述一下,如何使用阿里云物联网平台,创建一个简单的远程控制小灯示例。 完整工程&a…...

2024.7.16日 最新版 docker cuda container tookit下载!

nvidia官方指导 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html 其实就是这几个命令,但是有墙: curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/shar…...

打印室预约小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,附近打印店管理,文件打印管理,当前预约管理,预约历史管理,打印记录管理 开发系统:Windows 架构模式:SSM JD…...

Android音视频—OpenGL 与OpenGL ES简述,渲染视频到界面基本流程

文章目录 OpenGL 简述特点和功能主要组件OpenGL ES当前状态 OpenGL ES 在 Android 上进行视频帧渲染总体流程 OpenGL 简述 OpenGL(Open Graphics Library)是一个跨平台的、语言无关的应用程序编程接口(API),用于开发生…...

Vscode中Github copilot插件无法使用(出现感叹号)解决方案

1、击扩展或ctrl shift x ​​​​​​​ 2、搜索查询或翻找到Github compilot 3、点击插件并再左侧点击登录github 点击Sign up for a ... 4、跳转至github登录页,输入令牌完成登陆后返回VScode 5、插件可以正常使用...

Spring-cloud-openfeign-@FeignClient中的configuration属性

FeignClient注解中的configuration属性就是设置相关配置,但是这个属性写的非常的不好,而且在它的注释中也没有写全,所以本文记录一下,当我们的代码如下时: FeignClient(name "xxx", configuration Abc.cl…...

实验七:图像的复原处理

一、实验目的 熟悉常见的噪声及其概率密度函数。熟悉在实际应用中比较重要的图像复原技术,会对退化图像进行复原处理。二、实验原理 1. 图像复原技术,说简单点,同图像增强那样,是为了以某种预定义的方式来改进图像。在具体操作过程中用流程图表示,其过程就如下面所示: 2…...

前端面试题日常练-day94 【Less】

题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 在Less中,以下哪个功能用于处理文本换行? a) wrap-text() b) word-wrap() c) text-wrap() d) line-break() Less中的Variables是用来做什么的? a) 控制元素位置 b)…...

c 语言 中 是否有 unsigned 安;这种写法?

你提到的结构体定义使用了unsigned这种没有完全限定类型的写法,在C语言中,这种语法通常会被解释为unsigned int。这是因为在C语言中,unsigned是unsigned int的缩写形式。 下面是你的结构体定义以及解释: struct exec {unsigned …...

Hive第三天

1. 后台启动HIVE的JDBC连接 0 表示标准输入 1 表示标准输出 2 表示标准错误输出 nohup 表示挂起 最后的 & 表示 后台启动 nohup hive -service hiveserver2 > /usr/local/soft/hive-3.1.2/log/hiveserver2.log 2>&1 & jps 查看 Runj…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...