python函数用法——iloc、loc、columns

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

在pandas中,iloc、loc和.columns是DataFrame和Series对象上非常常用的属性或方法,它们各自有不同的用途和用法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、.iloc用法

基于整数位置的索引器,主要用于通过整数位置来选择数据。它接受行和列的位置(基于0的索引)作为参数。如果只想选择行,可以省略列参数(默认为选择所有列);反之亦然。

(一)初始化

假设我们有一个 DataFrame data,其结构如下:

import pandas as pd  
  
data = pd.DataFrame({
   
     
    'A': [1, 2, 3, 4],  
    'B': [5, 6, 7, 8],  
    'C': [9, 10, 11, 12]  
})  
  
print(data)

输出

   A  B   C  
0  1  5   9  
1  2  6  10  
2  3  7  11  
3  4  8  12

(二)使用步骤

1.选择单行

选择第一行(记住,Python 是从 0 开始计数的):

print(data.iloc[0])

输出:

A    1  
B    5  
C    9  
Name: 0, dtype: int64

2.选择多行

选择第1行和第2行:

print(data.iloc[0:2])

输出:

   A  B   C  
0  1  5   9  
1  2  6  10

选择前两行:

print(data.iloc[:2])

输出:

   A  B   C
0  1  5   9
1  2  6  10

选择后两行:

print(data
<think>我们被要求解释pandaslociloc的区别及用法。根据引用[1][2][4],我们知道:-loc基于标签(label)进行索引,包括行标签和列标签。-iloc基于整数位置(integerposition)进行索引。同时,引用[3]提供了同时选择行和列的示例。接下来,我们将详细说明两者的区别和用法,并给出示例。</think>### Pandas 中 `loc` 与 `iloc` 的区别及用法详解 在 Pandas 中,`loc` 和 `iloc` 是两种核心的数据选择方法,主要区别在于**索引方式**: | **特性** | **`loc`** | **`iloc`** | |----------------|----------------------------------------|-----------------------------------------| | **索引类型** | 基于标签(行名/列名)[^1][^2] | 基于整数位置(行号/列号)[^1][^4] | | **包含端点** | 包含结束位置(切片包含结束值)[^1] | 不包含结束位置(切片不包含结束值)[^1] | | **索引器格式** | 支持单值、列表、切片、布尔数组[^2][^3] | 支持单值、列表、切片、布尔数组[^1] | | **适用场景** | 按行/列名选择数据 | 按绝对位置选择数据 | --- #### 一、基础用法示例 创建示例 DataFrame(引用[1][3]): ```python import pandas as pd import numpy as np data = pd.DataFrame(np.arange(25).reshape(5,5), index=['a','b','c','d','e'], columns=['A','B','C','D','E']) ``` 输出: ``` A B C D E a 0 1 2 3 4 b 5 6 7 8 9 c 10 11 12 13 14 d 15 16 17 18 19 e 20 21 22 23 24 ``` **1. `loc` 按标签选择** ```python # 选择单行 print(data.loc['a']) # 行标签'a'的所有列 [^4] # 选择多行 print(data.loc[['a','c']]) # 行标签'a'和'c' [^3] # 行列组合选择 print(data.loc['b':'d', 'B':'D']) # 行'b'到'd',列'B'到'D'(包含端点)[^3] ``` **2. `iloc` 按位置选择** ```python # 选择单行 print(data.iloc[0]) # 第0行(索引从0开始) # 选择多行 print(data.iloc[[0,2]]) # 第0行和第2行 # 行列组合选择 print(data.iloc[1:4, 1:4]) # 第1-3行,第1-3列(不包含结束位置4)[^1] ``` --- #### 二、高级用法 **1. 布尔索引(两者均支持)** ```python # 选择A列大于10的行 print(data.loc[data['A'] > 10]) print(data.iloc[(data['A'] > 10).values]) ``` **2. 函数式选择** ```python # 选择奇数索引行 print(data.iloc[lambda x: x.index % 2 == 1]) ``` **3. 赋值操作** ```python data.loc['a':'c', 'B'] = 99 # 修改a-c行的B列值 data.iloc[0:3, 1] = 0 # 修改0-2行的第1列 ``` --- #### 三、核心区别演示 ```python # loc包含结束位置,iloc不包含 print(data.loc['b':'d']) # 输出b,c,d三行 → 3行 print(data.iloc[1:4]) # 输出1,2,3行 → 3行(位置4不包含) # 混合索引错误示例(iloc不能用标签) data.iloc['a'] # 报错!TypeError: cannot do label indexing ``` > **关键提示**: > 1. 当索引为默认整数索引时,`loc` 和 `iloc` 行为可能相似,但**包含性不同** > 2. 修改索引后必须使用 `loc` 按新标签访问 > 3. 对位置敏感的批量操作优先用 `iloc`,按业务属性选择用 `loc`
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值