Pandas 数据查找及修改操作 iloc() & loc() bool类型索引

Pandas数据索引核心:loc与iloc的标签与位置选择机制详解 在数据处理与分析中,数据索引与选择是基础且关键的操作,它直接影响到数据提取的准确性和效率。其核心原理在于区分基于标签(Label-based)和基于整数位置(Integer position-based)两种索引逻辑。基于标签的索引通过行索引和列名进行精确匹配,而基于位置的索引则依据从0开始的整数序号进行定位。理解这一二分法具有重要的技术价值,它不仅是避免数据提取错误的前提,更是实现高效、精准数据操作的基础。在Python的Pandas库中,这一原理具体体现为`loc`和`iloc`两个核心方法。`loc` 阅读详情

代码运行基于jupyter notebook

一、数据加载

import pandas as pd
import pickle
with open('titanic.pickle', 'rb') as file:
    df = pickle.load(file)

二、.iloc() 用位置查找、修改数据

df = df.set_index('Name')
df.head()

在这里插入图片描述

查找数据

df.iloc[0:5, 1:3]

在这里插入图片描述

修改数据

print(df.iloc[0,4])
# 22.0
df.iloc[0,4] = 1000
df.head()

在这里插入图片描述

三、.loc() 用标签查找、修改数据

查找数据

df.loc['Heikkinen, Miss. Laina']

在这里插入图片描述

修改数据

print(df.loc['Heikkinen, Miss. Laina','Age'])
# 26.0 
df.loc['Heikkinen, Miss. Laina','Age'] = 18
df.head()

在这里插入图片描述

三、bool类型索引

# 选择船票价格大于40的乘客
#df[df['Fare'] > 40]
# 选择船票价格大于40的前五个乘客
#df[df['Fare'] > 40][:5]
# 选择前五个男性乘客
#df[df['Sex'] == 'male'][:5]
# 注意 df['Fare'] > 40 返回的一个bool类型列
# df[df['Fare'] > 40]才能选择出满足要求的数据行
df['Fare'] > 40

在这里插入图片描述

# 计算大于70岁的乘客的人数
# (df['Age']>70).sum()

#计算所有男性的平均年龄  这三行代码等价
# iloc貌似不能直接用布尔索引当做掩码
#ValueError: iLocation based boolean indexing cannot use an indexable as a mask

df.loc[df['Sex'] == 'male', 'Age'].mean()
df.iloc[(df['Sex'] == 'male').values, 4].mean()
df.iloc[list(df['Sex'] == 'male'), 4].mean()

四、参考资料

《Pandas Cookbook》第05章 布尔索引

Pandas数据索引核心:loc与iloc的深度解析与实战避坑指南 在数据处理与分析中,高效、准确地访问和操作数据是核心基础。Pandas作为Python生态中最主流的数据分析库,其数据索引机制直接决定了代码的健壮性与性能。loc与iloc是Pandas DataFrame进行数据选取的两大核心访问器,它们分别代表了基于标签(Label)和基于整数位置(Integer Location)的两种不同寻址范式。理解其底层原理,能帮助开发者避免常见的KeyError、SettingWithCopyWarning等错误,并写出更符合Pandas设计哲学的代码。从技术价值看,loc提 阅读详情

相关推荐

Pandas索引选择全解析:从df[]到.loc/.iloc的实战指南

在数据处理领域,索引是高效访问和操作数据的核心机制。其原理在于通过特定的键或位置快速定位目标数据,从而避免低效的全表扫描。这一技术价值在于能极大提升数据查询与筛选的性能,是数据分析、机器学习等场景的基石。在实际应用中,数据选择器如Pandas的`.loc`(基于标签)和`.iloc`(基于位置)是实现精确索引的关键工具。理解`DataFrame`直接索引`df[]`的隐式规则——例如优先按列选择、切片按行选择——对于编写健壮代码至关重要,它能帮助开发者规避常见的`SettingWithCopyWarning

399

pandas按条件筛选数据

pandas中对DataFrame筛选数据的方法有很多的,以后会后续进行补充,这里只整理遇到错误的情况。 1.使用布尔型DataFrame对数据进行筛选 使用一个条件对数据进行筛选,代码类似如下: num_red=flags[flags['red']==1] 使用多个条件对数据进行筛选,代码类似如下: stripes_or_bars=flags[(flags['stripes']&g...

读万卷书 行万里路 5万+

Pandas DataFrame查询访问、索引、切片---初学基础

索引 1.根据索引取值 *# BOOL列表访问默认访问的是行,而不是列 2.行索引 2.1 通过标签索引行数据loc 对列进行索引 - 通过类似字典的方式- 通过属性的方式,loc方法通过标签或者bool数组选取一些行和列, 可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。 2.2 iloc...

直心I 2398

[Pandas]数据选取/数据切片

在对数据做相应操作之前,我们要先筛选出所需的数据,pandas提供了一些方法方便我们选取数据,这里主要讲解dataFrame类型的数据选取,Series类型用法类似,可以查阅文档中的相关属性。 pandas主要提供了三种属性用来选取行/列数据: 属性名 属性 ix 根据整数索引或者行标签选取数据 iloc 根据位置的整数索引选取数据 loc 根据行标签选取数据 在 0....

nanbei2463776506的博客 1万+

地道Pandas代码五条铁律:索引、链式、内存、分组、可视化

Pandas作为Python数据科学的核心库,其高效使用依赖于对向量化操作、内存管理与链式编程等基础原理的深入理解。掌握`loc/iloc`索引机制可规避SettingWithCopyWarning等常见陷阱;采用`.pipe()`构建方法链能提升代码可读性、可测试性与维护性;合理使用`category`、`int16`等数据类型可降低70%以上内存占用;`groupby`配合`agg`和`apply`实现高性能分组聚合,替代低效for循环;而集成Seaborn的DataFrame原生`.plot()`方法

weixin_34208185的博客 324

使用iloc函数索引单个数据列,生成的数据对象是Dataframe类型而不是Series类型。在Python中,我们可以使用iloc函数来访问特定位置的数据。此...

使用iloc函数索引单个数据列,生成的数据对象是Dataframe类型而不是Series类型。代码中,首先我们定义了一个字典类型的数据,并将其转换为DataFrame对象。接着,我们使用iloc函数选择第2列,也就是“age”这一列的数据。可以看到,我们通过iloc函数选择单个数据列时,返回的是一个Dataframe对象。在使用iloc函数选择单个数据列时,需要注意的一点是,要使用逗号将行和列的索引分开。如果省略逗号,则会得到一行或一列的Dataframe对象,而不是Series对象。

DevForge的博客 347

pandas库学习笔记

> dataframe与series pandas中有两种常用的数据结构,分别是dataframe和series两种。 dataframe数据结构 import numpy as np import pandas as pd dataframe = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index = ['No.1','No.2','No.3'],co...

moshanghuali的博客 3147

Python 通过loc/iloc修改DataFrame数据( Pandas篇-09)

使用`loc`和`iloc`来修改DataFrame对象的局部数据,可以通过索引或切片方式选择特定的行和列,然后进行赋值操作。

侯小啾技术博客 1002

[转载] Pandas 数据查找及修改操作 iloc() & loc() bool类型索引

参考链接: Pandas的布尔索引 代码运行基于jupyter notebook 文章目录 一、数据加载二、.iloc() 用位置查找、修改数据查找数据修改数据 三、.loc() 用标签查找、修改数据查找数据修改数据 三、bool类型索引四、参考资料 一、数据加载 import pandas as pd import pickle with open('titanic.pickle', 'rb') as file: df = pick...

u013946150的博客 770

棋牌App逆向工程实战:透视风险分析与反作弊加固思路

在移动应用安全领域,逆向工程是一项关键的攻防技术,它通过静态分析、动态调试与协议抓包等手段,深入还原客户端真实逻辑。这项技术的核心原理,是从已编译的安装包中提取数据流,验证服务端下发的信息是否超出了客户端应有的可见范围。从技术价值看,安全测试人员可以借此定位协议层、内存层与缓存层的潜在风险,为反作弊体系提供精准的加固建议。在棋牌类App等实时对局场景中,逆向工程常被用于排查牌局信息泄露类隐患,而合规授权与测试环境是开展此类研究的必要前提。本文结合一次棋牌App的安全评估实践,梳理了从环境准备到数据流还原的完

weixin_29326909的博客 175

Unity Android平台下插件/SDK开发通用流程

本文主要面向对Android开发不甚了解的Unity开发者,介绍了基于最新的Android Studio的标准Android开发环境与项目结构的配置流程,在此基础上,开发者可以快速的进行SDK的接入与插件的开发。

ZhangDi2017的博客 1万+

Pandas索引全解析:loc与iloc的核心区别、实战技巧与性能优化

在数据处理与分析中,索引是高效定位与筛选数据的核心技术,其原理类似于数据库的查询优化。通过建立数据标签或位置与存储地址的映射,索引能极大提升数据检索速度,是处理大规模数据集的关键。在Python的pandas库中,`loc`和`iloc`是两种最核心的索引器,分别代表了“基于标签”和“基于位置”的两种数据访问哲学。理解它们的区别对于避免数据错位、编写高效稳健的数据处理脚本至关重要。`loc`通过行/列的名称进行访问,支持直观的切片与强大的布尔条件筛选,是进行业务逻辑查询和数据修改的首选;而`iloc`则依据

weixin_33924220的博客 307

ICM42670 IIC驱动与卡尔曼+四元数姿态解算实战

惯性测量单元(IMU)是运动控制、无人机飞控和AR/VR设备的核心传感器,其数据质量直接取决于底层硬件通信可靠性与姿态估计算法鲁棒性。IIC(I²C)作为嵌入式系统中最常用的低速串行总线,需满足确定性时序、抗干扰与实时采样要求;卡尔曼滤波则通过状态建模与噪声协方差优化,在动态环境中融合加速度计与陀螺仪数据;而四元数因其无万向锁、插值平滑、旋转合成高效等优势,成为高精度姿态解算的数学基础。本文以高性能六轴IMU ICM42670为载体,深入剖析IIC硬件设计要点、裸机级驱动优化、Allan方差驱动的卡尔曼参数

weixin_27076351的博客 253

Pandas数据选取核心:.loc与.iloc索引器详解与实战避坑

在数据分析与数据处理中,数据选取是基础且关键的操作,它直接决定了后续分析的准确性和效率。其核心原理在于通过索引机制快速定位目标数据,避免低效的循环遍历。在Python的pandas库中,这一技术价值通过两套强大的索引器实现:基于标签的`.loc`和基于整数位置的`.iloc`。理解它们的设计哲学与行为差异,是高效进行数据切片、筛选和赋值的前提。在实际应用场景中,无论是处理连续的数据范围、进行不规则的跳跃式选取,还是执行基于复杂业务逻辑的条件筛选,都需要根据数据索引的类型(如业务标签或物理位置)选择合适的工具

weixin_30631587的博客 573

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

本文详细介绍如何将串口通信将数据进行本次存储,主要介绍常用的csv、txt格式文件,由多年实战经验总结,绝对干货!

qq_34059233的博客 7237

Pandas索引操作全解析:从数据清洗翻车到高效查询实战

在数据处理与分析中,索引是高效访问和操作数据的核心机制。其原理在于为数据建立标签与位置的映射关系,通过哈希或二分查找等技术实现快速定位。掌握索引技术能显著提升数据查询、筛选和聚合的性能,是数据清洗、特征工程和业务分析的基础。在实际应用场景中,无论是处理销售报表、用户行为日志还是时间序列数据,合理的索引设计都能让数据操作事半功倍。本文围绕pandas DataFrame的索引操作,深入探讨了如何正确设置行索引与列索引,并详细解析了.loc、.iloc等索引器的使用技巧与避坑指南,帮助读者从一次数据清洗的翻车经

weixin_30301449的博客 366

MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(KEPserverOPC通信应用)

SMART PLC 向导PID的详细介绍请查看下面文章链接:S7-200 SMART PLC PID向导详细介绍(如何实现P、PD、PID控制器)-优快云博客文章浏览阅读1k次。这篇博客主要介绍SMART PLC PID向导的使用,PID控制相关的其它内容请查看专栏系列文章,常用链接如下:SMART PLC PID负压控制(过程量为负数)_负压控制pid控制程序_RXXW_Dor的博客-优快云博客1、如何实现PID反作用调节?S7-1200PLC和KEPserver OPC通信-优快云博客。

RXXW_Dor的博客 1781

python3-pandas DataFrame 索引、bool索引、pandas 字符串方法

1、DataFrame 索引 1.1 普通索引取值 pandas 取行或者列的注意点: 方括号写数组,表示取行,对行进行操作 方括号写字符串,表示取列,对列进行操作 import pandas as pd import numpy as np # pandas 取行或者列的注意点 # 方括号写数组,表示取行,对行进行操作 # 方括号写字符串,表示取列,对列进行操作 t1 = pd.DataFrame(np.arange(12).reshape(3,4), index=list("abc"), colum

qq_38959934的博客 2362

基于STM32L4XX 、HAL库的SGM452B数字温度传感器驱动应用C语言程序设计

SGM452B_RESOLUTION_12BIT = SGM452B_CONFIG_R1 | SGM452B_CONFIG_R0 /* 12位分辨率,精度0.0625°C,转换时间200ms */SGM452B_RESOLUTION_11BIT = SGM452B_CONFIG_R1, /* 11位分辨率,精度0.125°C,转换时间100ms */SGM452B_RESOLUTION_10BIT = SGM452B_CONFIG_R0, /* 10位分辨率,精度0.25°C,转换时间50ms */

PP_Cottage的博客 327

ZYNQ PL通过EMIO ETHE1外接PHY由GMII转RGMII

1,设置EMIO方式引出ETHE1 2,从GMII过度到RGMII GMII: 发送 gmii_tx_clk gmii_tx_d[7:0] gmii_tx_en gmii_tx_er 接收 gmii_rx_clk gmii_rx_d[7:0] gmii_rx_dv gmii_rx_er RGMII: 发送 tx_clk tx_d[3:0] tx_ctrl 接收 rx_clk rx_d[3:0] rx_ctrl 首先数据总线从时钟单边沿采样8bit转变为了双边沿采样4bit,从88E1

wangjie36的博客 1万+

python第三章:03 pandas索引和常用操作

pandas 的索引 索引是非常重要的一个功能,使用索引我们就可以对数据进行选取和筛选 四种索引形式: 使用位置做索引 使用列表做索引 使用切片做索引 使用bool类型索引 ** A、选取行: ** 使用 loc 或者 iloc 函数来实现 import pandas as pd filepath = '销售客户信息.xlsx' df = pd.read_excel(filepath) df 用户ID 注册时间 性别

weixin_44576834的博客 327

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Pandas DataFrame 行号列号获取:get_loc、np.where 与坐标定位实战

在数据处理与分析中,精准定位数据是核心操作。无论是进行数据清洗、特征工程还是结果验证,都需要快速找到特定值在二维表格结构中的确切位置。其基本原理在于理解数据的索引机制,即通过标签(如列名、行索引)或整数位置来访问和操作数据。掌握高效的行列坐标获取技术,能极大提升数据处理的自动化程度与代码性能,是数据工程师和分析师必备的技能。在实际应用场景中,例如从海量数据中筛选特定条件记录、进行向量化计算或与NumPy等库交互时,都需要将逻辑标签转换为底层整数坐标。本文聚焦于Pandas DataFrame,深入讲解如何通

weixin_34009794的博客 409

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Pandas基础操作简介1

pandas是python中处理数据最实用的包 import pandas as pd 读取数据: read_csv:读取泰坦尼克号数据为例 df = pd.read_csv('./data/titanic.csv') .head()可以读取前几条数据,指定前几条都可以 默认读取5行 df.head(10) .info返回当前的信息 每一列的基本信息描述 .des...

Andy_shenzl的博客 244

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Pandas工具包实战(2)pandas索引:series, dataframe, Pandas索引结构、loc、iloc、bool布尔类型的索引

1 Pandas索引结构 import pandas as pd df = pd.read_csv('./data/titanic.csv') df['Age'][:5] df[['Age','Fare']][:5] 2 iloc 用position来去定位 (位置) df.iloc[0] # 选择第一行的数据 df.iloc[0:5] # 选择前五行的数据 df.iloc[0:5,1:3] # 选择前五行的前三列的数据 3 loc 用label来去定位 (标签),与修改值 df = df.s

haiwang_luo的博客 442

Python Pandas库的DataFrame的索引

0引言 对DataFrame数据索引有三种方式:student[ ],student.loc[ ],student.iloc[ ]。本文先记录前两种,第三种以后补充。 1数据 构造一个有五行,列属性为[ ‘Age’ , ‘Height’ , ‘Name’ , ‘Sex’ , ‘Weight’ ]的student数据 import pandas as pd import numpy as np s...

qq_40206060的博客 658
上一篇: Python Pickle模块存储以及加载数据 加快运行
下一篇: 服务器配置新的conda环境
RPG_Zero
博客等级 码龄8年 77粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值