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

相关文章

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化