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

2024-08-21 20:28

本文主要是介绍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 使用标签来选择数据,适合基于标签的操作。

这篇关于python中dataframe的iloc和loc的使用区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094195

相关文章

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

详解如何使用Python提取视频文件中的音频

《详解如何使用Python提取视频文件中的音频》在多媒体处理中,有时我们需要从视频文件中提取音频,本文为大家整理了几种使用Python编程语言提取视频文件中的音频的方法,大家可以根据需要进行选择... 目录引言代码部分方法扩展引言在多媒体处理中,有时我们需要从视频文件中提取音频,以便进一步处理或分析。本文

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对