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

python中dataframe的iloc和loc的使用区别

文章目录

      • `.iloc` 和 `.loc` 的基本用法
        • `.iloc`
        • `.loc`
      • 示例代码和解释
        • 使用 `.iloc`
        • 使用 `.loc`
      • 总结

.iloc.loc 的基本用法

.iloc
  • 用于通过位置(整数位置)来选择数据。
  • iloc 索引基于行和列的整数位置

常用语法

  • data.iloc[i, j]:选择第 i 行第 j 列的元素,若索引下标从0开始,对应的是第 i+1 行第 j+1 列的元素。
  • data.iloc[i, :]:选择第 i 行的所有列,若索引下标从0开始,对应的是第 i+1 行所有列的元素。
  • data.iloc[:, j]:选择所有行的第 j 列,若索引下标从0开始,对应的是所有行第 j+1 列的元素。
  • data.iloc[i:j, k:l]:==选择从第 i 行到第 j 行(不包括第 j 行)和从第 k 列到第 l 列(不包括第 l 列)的数据。左闭右开区间的选择,若索引下标从0开始,对应的是第 i+1 行到第 j+1 行(不包括第 j+1 行)和从第 k+1 列到第 l+1 列(不包括第 l+1 列)的数据
.loc
  • 用于通过标签(行和列的标签名)来选择数据。
  • loc 索引基于行和列的标签

常用语法

  • data.loc[row_label, col_label]:选择指定行标签和列标签的数据。
  • data.loc[row_label, :]:选择指定行标签的所有列。
  • data.loc[:, col_label]:选择所有行的指定列标签。
  • data.loc[row_labels, col_labels]:选择多个行标签和列标签的数据。

示例代码和解释

首先,创建一个示例 DataFrame:index表示的是行索引,columns是列索引

import pandas as pd# 创建一个示例 DataFrame
data = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]
}, index=['row1', 'row2', 'row3'])print(data)

输出

       A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9
使用 .iloc
  1. 选择特定元素索引下标都是从0开始

    element = data.iloc[1, 2]
    print(element)
    

    输出

    8
    

    选择第二行第三列的元素(位置索引是从0开始的)。

  2. 选择特定行

    row_data = data.iloc[1, :]
    print(row_data)
    

    输出

    A    2
    B    5
    C    8
    Name: row2, dtype: int64
    

    选择第二行的所有列数据。也就是第二行的所有数据

  3. 选择特定列

    col_data = data.iloc[:, 1]
    print(col_data)
    

    输出

    row1    4
    row2    5
    row3    6
    Name: B, dtype: int64
    

    选择所有行的第二列数据。

  4. 选择行和列的范围

    subset = data.iloc[0:2, 1:3]
    print(subset)
    

    输出

          B  C
    row1  4  7
    row2  5  8
    

    选择第一行到第二行(不包括第三行)和第二列到第三列(不包括第四列)的数据。

使用 .loc
  1. 选择特定元素

    element = data.loc['row2', 'C']
    print(element)
    

    输出

    8
    

    选择行标签为 row2 和列标签为 C 的元素。

  2. 选择特定行

    row_data = data.loc['row2', :]
    print(row_data)
    

    输出

    A    2
    B    5
    C    8
    Name: row2, dtype: int64
    

    选择行标签为 row2 的所有列数据。

  3. 选择特定列

    col_data = data.loc[:, 'B']
    print(col_data)
    

    输出

    row1    4
    row2    5
    row3    6
    Name: B, dtype: int64
    

    选择所有行的列标签为 B 的数据。

  4. 选择行和列的范围

    subset = data.loc['row1':'row2', 'B':'C']
    print(subset)
    

    输出

          B  C
    row1  4  7
    row2  5  8
    

    选择从 row1row2 行(包括row2)和从 B 列到 C 列的数据(包括 C)。

总结

  • .iloc 使用整数位置索引来选择数据,适合基于位置的操作。
  • .loc 使用标签来选择数据,适合基于标签的操作。

相关文章:

  • 秋叶SD整合安装包更新了!8月最新版4.9【附下载】
  • Qt 0821作业
  • 用友crm客户关系管理help.php存在任意文件读取漏洞解析
  • 面试题目:(6)翻转二叉树
  • 机器学习十-欠拟合和过拟合
  • JavaScript - 事件监听
  • 批量自动校正图片、PDF文档方向工具
  • 稳石机器人 | 工业级AMR S1200L,专为多样化需求设计,柔性拓展更易用
  • L2G: A Simple Local-to-Global Knowledge Transfer Framework for WSSS
  • 深入理解MySQL索引:原理、数据结构与优化策略
  • 原子操作的概念
  • 通过建立系统用例模型和静态模型,搭建教学管理系统
  • React学习笔记(一)——react基础
  • 关于python的Django项目性能优化
  • 软件测试3333
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CentOS6 编译安装 redis-3.2.3
  • Docker: 容器互访的三种方式
  • jquery cookie
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js递归,无限分级树形折叠菜单
  • Laravel Mix运行时关于es2015报错解决方案
  • React系列之 Redux 架构模式
  • Swoft 源码剖析 - 代码自动更新机制
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • vue脚手架vue-cli
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 将 Measurements 和 Units 应用到物理学
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 思否第一天
  • 听说你叫Java(二)–Servlet请求
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 最简单的无缝轮播
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​Python 3 新特性:类型注解
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #70结构体案例1(导师,学生,成绩)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (~_~)
  • (11)MSP430F5529 定时器B
  • (145)光线追踪距离场柔和阴影
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (8)STL算法之替换
  • (done) 两个矩阵 “相似” 是什么意思?
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (WSI分类)WSI分类文献小综述 2024
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)菜鸟学数据库(三)——存储过程
  • .NET DataGridView数据绑定说明