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

Pandas :索引机制与数据访问

Pandas 的运行逻辑建立在索引对象之上。索引对象不仅用于显示标签更承担“标签查找”的职责。所有基于标签的访问与运算都会先经过索引对象完成查找与匹配再进入数据区域。示例数据import pandas as pd df pd.DataFrame({ 姓名: [张三, 李四, 王五], 城市: [北京, 上海, 北京], 收入: [8000, 12000, 10000], 年龄: [25, 30, 28]}) # 显式设置行索引df.index [A001, A002, A003]print(df)输出姓名 城市 收入 年龄A001 张三 北京 8000 25A002 李四 上海 12000 30A003 王五 北京 10000 28此时 DataFrame 中的数据访问存在四种定位途径1行标签A001、A002、A0032行位置0、1、23列标签姓名、城市、收入、年龄4列位置0、1、2、3这四种定位途径共同构成二维结构的定位体系。需要区分的是• 标签labels由 Index 对象管理• 位置position由数据区域的物理排列决定在 Pandas 中.loc 负责基于标签的访问.iloc 主要负责基于位置的访问。一、.loc基于标签访问.loc[] 根据参数结构既可返回单行Series单列Series单元格值标量或子 DataFrame。基本语法df.loc[row_selector, col_selector]• row_selector行标签选择器• col_selector列标签选择器可省略默认选择全部列1、访问单行按行标签访问返回一个 Series行切片结果。语法df.loc[行标签]示例df.loc[A002] # 行标签返回姓名 李四城市 上海年龄 30Name: A002, dtype: object注意该 Series 是按列组织的一行结果并不是 DataFrame 内部按列组织的“列 Series”。2、访问单列指定列标签可返回 Series 或单列 DataFrame。1返回 Series语法df.loc[:, 列标签]列访问的简写形式df[列标签]示例df.loc[:, 姓名] df[姓名]返回A001 张三A002 李四A003 王五Name: 姓名, dtype: object2返回单列 DataFrame语法df.loc[:, [列标签]]示例df.loc[:, [姓名]]返回姓名A001 张三A002 李四A003 王五3、访问单个元素若同时指定行标签与列标签可返回单元格值标量。语法df.loc[行标签, 列标签]示例df.loc[A002, 城市]返回上海建议使用 .at[] 进行快速地单个元素按标签访问df.at[A002, 城市]4、访问数据区域——标签切片DataFrame 的切片表达式与列表的切片表达式基本类似。.loc 支持基于标签的切片返回子 DataFrame。1行切片语法df.loc[起始行标签:结束行标签]或者df.loc[起始行标签:结束行标签, :]示例df.loc[A001:A002]返回姓名 城市 收入 年龄A001 张三 北京 8000 25A002 李四 上海 12000 30说明• .loc 标签切片为左闭右闭。• 切片依据索引标签的顺序而不是自动排序• 若索引无序切片结果可能不符合区间直觉2行列同时切片语法df.loc[起始行标签:结束行标签, 起始列标签:结束列标签]示例df.loc[A002:A003, 姓名:收入]返回姓名 城市 收入A002 李四 上海 12000A003 王五 北京 10000二、.iloc基于整数位置访问.iloc[] 使用整数位置对数据进行访问。这里的“整数位置”指的是数据的物理排列顺序。基本语法df.iloc[row_position, col_position]• row_position行位置选择器从 0 开始• col_position列位置选择器从 0 开始可省略默认选择全部列1、访问单行按行位置访问返回一个 Series行切片结果。语法df.iloc[行位置]示例df.iloc[0] # 第 0 行返回姓名 张三城市 北京收入 8000年龄 25Name: A001, dtype: object2、访问单列指定列位置可返回 Series 或单列 DataFrame。1返回 Series语法df.iloc[:, 列位置]示例df.iloc[:, 0] # 第 0 列返回A001 张三A002 李四A003 王五Name: 姓名, dtype: object2返回单列 DataFrame语法df.iloc[:, [列位置]]示例df.iloc[:, [1]]返回城市A001 北京A002 上海A003 北京3、访问单个元素若同时指定单个行位置与列位置可返回单元格值标量。语法df.iloc[行位置, 列位置]示例df.iloc[1, 1] # 第 1 行第 1 列返回上海建议使用 .iat[] 进行快速地单个元素按位置访问df.iat[1, 1]4、访问数据区域——位置切片.iloc 支持基于整数位置的切片返回子 DataFrame。1行切片语法df.iloc[起始位置:结束位置]示例df.iloc[0:2]返回姓名 城市 收入 年龄A001 张三 北京 8000 25A002 李四 上海 12000 30说明• .iloc 位置切片为左闭右开包含起始位置不包含结束位置• 不依赖索引排序状态2行列同时切片语法df.iloc[起始行位置:结束行位置, 起始列位置:结束列位置]示例df.iloc[0:2, 0:2]返回姓名 城市A001 张三 北京A002 李四 上海三、按条件访问按条件访问是通过布尔数组对数据进行筛选的机制。其本质是先生成布尔序列然后根据 True / False 选择数据区域。当布尔对象为 Series 时Pandas 会进行索引对齐index alignment按标签匹配布尔 Series → 索引匹配 → 数据提取当布尔对象为 ndarray 或 list 时则按位置匹配布尔数组 → 位置匹配 → 数据提取基本语法df[布尔对象]df.loc[布尔对象]df.iloc[布尔数组]布尔对象通常由条件表达式生成例如df[年龄] 25多个条件可以通过逻辑运算符进行组合。例如df[(df[年龄] 25) (df[城市] 北京)]注意• 必须使用 逻辑与、|逻辑或、~逻辑非不能使用 and、or、not• 每个条件必须使用括号包裹条件组合的本质是对布尔 Series 进行逐元素逻辑运算因此必须使用按位逻辑运算符并保证运算优先级正确。1、按条件筛选行首先生成布尔 Seriesmask df[年龄] 25生成的 maskA001 FalseA002 TrueA003 TrueName: 年龄, dtype: bool然后使用筛选df[mask]或df.loc[mask]说明当传入布尔对象时DataFrame.__getitem__ 会将其解释为行筛选。返回姓名 城市 收入 年龄A002 李四 上海 12000 30A003 王五 北京 10000 28说明mask 是带索引的 SeriesPandas 按索引标签匹配仅选择值为 True 的行。2、按条件筛选列首先生成布尔数组。col_mask df.columns 年龄col_mask 是基于列索引生成的布尔数组[False False False True]列筛选为布尔数组按位置匹配df.loc[:, col_mask]返回单列 DataFrame年龄A001 25A002 30A003 283、返回单列的条件筛选若同时指定列标签可返回单列 Series。df.loc[df[年龄] 25, 姓名]返回A002 李四A003 王五Name: 姓名, dtype: object4、布尔数组无索引筛选若传入 NumPy 布尔数组import numpy as np mask_array np.array([False, True, True])df[mask_array]返回对应 True 的行姓名 城市 收入 年龄A002 李四 上海 12000 30A003 王五 北京 10000 285、使用 .iloc 进行位置条件筛选原理同上利用布尔数组.iloc 按整数位置筛选mask df[年龄] 25df.iloc[mask.values]说明布尔数组长度必须等于行数否则抛出 IndexError。 小结DataFrame 的索引机制将“标签”与“位置”两套定位体系统一在同一结构之中。.loc 与 .iloc 分别对应标签访问与位置访问.at 与 .iat 优化单值读取布尔筛选则通过索引对齐或位置匹配完成数据提取。理解索引对象的查找与对齐机制是掌握 Pandas 数据访问语义的核心。“点赞有美意赞赏是鼓励”

相关文章:

Pandas :索引机制与数据访问

Pandas 的运行逻辑建立在索引对象之上。索引对象不仅用于显示标签,更承担“标签查找”的职责。所有基于标签的访问与运算,都会先经过索引对象完成查找与匹配,再进入数据区域。示例数据:import pandas as pd df pd.DataFrame({ …...

开源项目 Homelab 使用教程

开源项目 Homelab 使用教程 项目介绍 Homelab 是一个开源项目,旨在帮助用户构建和管理自己的家庭实验室。该项目提供了一套完整的工具和配置,使用户能够轻松地部署和管理各种服务和应用。Homelab 项目由 khuedoan 开发,基于 Kubernetes 和其他…...

VideoAgentTrek-ScreenFilter开发环境配置:从零开始搭建Java调用示例

VideoAgentTrek-ScreenFilter开发环境配置:从零开始搭建Java调用示例 如果你是一名Java开发者,最近听说了VideoAgentTrek-ScreenFilter这个视频处理服务,想在自己的项目里试试看,但不知道从哪儿下手,那这篇文章就是为…...

抖音无水印视频下载终极方案:DouYinBot完整使用指南

抖音无水印视频下载终极方案:DouYinBot完整使用指南 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 还在为抖音视频上的水印烦恼吗?想要收藏喜欢的视频却总是被平台限制困扰?DouY…...

Pandas 操作指南(一):DataFrame 的构建与表格数据组织

在数据分析与数据处理中,原始数据往往并不是一开始就以规范表格的形式出现。它可能来自列表(list)、字典(dict)、CSV/Excel 文件,或程序运行过程中临时生成的数据集合。若这些数据尚未被整理为结构明确的表…...

Phi-3-mini-4k-instruct-gguf辅助前端开发:基于VSCode的智能代码补全实践

Phi-3-mini-4k-instruct-gguf辅助前端开发:基于VSCode的智能代码补全实践 1. 引言:当AI遇见前端开发 最近在写前端代码时,我经常遇到这样的情况:明明知道要实现什么功能,却卡在具体语法细节上;或者反复写…...

万象视界灵坛应用场景:智能安防视频截图分析——自动识别‘是否含未授权人员/危险物品/异常行为’语义

万象视界灵坛在智能安防中的应用:自动识别异常语义分析 1. 智能安防的痛点与解决方案 传统安防监控系统面临三大核心挑战: 人力成本高:需要专人24小时盯守监控画面反应滞后:异常事件往往事后才发现漏检率高:人工监控…...

Wallpaper Engine下载器革新:突破创意工坊壁纸获取瓶颈的高效解决方案

Wallpaper Engine下载器革新:突破创意工坊壁纸获取瓶颈的高效解决方案 【免费下载链接】Wallpaper_Engine 一个便捷的创意工坊下载器 项目地址: https://gitcode.com/gh_mirrors/wa/Wallpaper_Engine 你是否曾因Steam创意工坊复杂的下载流程而放弃心仪的动态…...

Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出+中文摘要双模式

Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出中文摘要双模式 1. 模型能力惊艳展示 千问3.5-9B-AWQ-4bit作为一款支持图像理解的多模态模型,在处理表格类图片时展现出令人印象深刻的能力。它不仅能够准确识别表格内容,还能提供…...

CLIP-GmP-ViT-L-14GPU算力适配:ViT-L模型显存占用分析与推理加速实践

CLIP-GmP-ViT-L-14 GPU算力适配:ViT-L模型显存占用分析与推理加速实践 1. 引言 当你拿到一个像 CLIP-GmP-ViT-L-14 这样强大的视觉-语言模型时,第一反应可能是兴奋——它拥有接近90%的ImageNet准确率,能精准理解图片和文字的关系。但当你尝…...

ChatGLM3-6B Streamlit应用案例:代码辅助、长文档摘要、闲聊三合一

ChatGLM3-6B Streamlit应用案例:代码辅助、长文档摘要、闲聊三合一 1. 项目简介:你的本地全能AI助手 想象一下,你正在写一段复杂的代码,卡在某个逻辑上;或者面对一份几十页的技术文档,需要快速提炼核心&a…...

电商智能客服:基于Qwen3-VL:30B的多模态问答系统实现

电商智能客服:基于Qwen3-VL:30B的多模态问答系统实现 1. 引言 电商客服每天面对海量咨询,从"这件衣服有没有M码"到"这个电器怎么安装",问题五花八门。传统客服需要不停切换商品页面、说明书、物流信息,忙得…...

Doorkeeper与Active Storage集成终极指南:如何为OAuth认证系统添加文件上传功能 [特殊字符]

Doorkeeper与Active Storage集成终极指南:如何为OAuth认证系统添加文件上传功能 🚀 【免费下载链接】doorkeeper Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape. 项目地址: https://gitcode.com/gh_mirrors/do/doorkeeper Doorke…...

PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈

PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈 1. 从零搭建AI视频工作室的技术选择 作为一名独立开发者,我一直在寻找能够支撑个人AI视频创作的技术方案。经过多次尝试,最终选择了基于PyTorch 2.8的深度学习镜像作为核心…...

Phi-4-mini-reasoning低成本部署:8GB显存即可运行的高性能推理模型

Phi-4-mini-reasoning低成本部署:8GB显存即可运行的高性能推理模型 1. 模型介绍 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出等场景。与通用聊天模型不同,它采用了"…...

从零到精通:Logisim-evolution数字电路设计完全指南

从零到精通:Logisim-evolution数字电路设计完全指南 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 想要掌握数字电路设计的精髓,却苦于找不到合适…...

文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写

文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写 最近和几个做安全的朋友聊天,他们都在抱怨同一个问题:每天面对海量的告警日志和五花八门的攻击脚本,分析起来耗时费力,写报告更是头疼。技术细节…...

解决手柄兼容性问题的虚拟手柄驱动方案

解决手柄兼容性问题的虚拟手柄驱动方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏体验中,手柄兼容性问题常常成为玩家的困扰。…...

LSM303DLHC驱动开发:磁力计校准与六轴姿态解算

1. LSM303DLHC 姿态感知核心:高精度磁力计与加速度计集成库深度解析LSM303DLHC 是意法半导体(STMicroelectronics)推出的紧凑型六轴惯性测量单元(IMU),集成了三轴加速度计(2g/4g/8g 可选量程&am…...

医美可视化新体验:Face3D.ai Pro帮你“预览”术后3D效果

医美可视化新体验:Face3D.ai Pro帮你"预览"术后3D效果 关键词:3D人脸重建、医美效果预览、面部整形模拟、Face3D.ai Pro、AI医美咨询 摘要:在医美行业,客户最常问的问题是"我做完会变成什么样?"…...

碧蓝航线自动化助手:5分钟掌握解放双手的终极解决方案

碧蓝航线自动化助手:5分钟掌握解放双手的终极解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 你是否曾为…...

sguard_limit:如何彻底解决腾讯游戏反作弊系统导致的电脑卡顿问题

sguard_limit:如何彻底解决腾讯游戏反作弊系统导致的电脑卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源,支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 你是否在玩腾讯游戏时遇到过…...

ViGEmBus完全指南:解决游戏控制器兼容性问题的4个关键步骤

ViGEmBus完全指南:解决游戏控制器兼容性问题的4个关键步骤 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在游戏世界中,硬件兼容性问…...

Gost透明代理终极指南:实现无感知网络流量转发 [特殊字符]

Gost透明代理终极指南:实现无感知网络流量转发 🚀 Gost透明代理是一种强大的网络流量转发工具,能够实现完全无感知的网络代理体验。作为GO Simple Tunnel项目的核心功能,Gost透明代理让用户无需手动配置每个应用的代理设置&#x…...

obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法

obs-multi-rtmp技术突破:多平台直播资源效率提升的5大实践方法 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp obs-multi-rtmp作为一款开源的OBS Studio插件,通过…...

Elsevier Tracker:科研投稿状态追踪的自动化解决方案

Elsevier Tracker:科研投稿状态追踪的自动化解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 在学术出版流程中,论文投稿后的状态监控一直是科研人员面临的重要挑战。传统的人工查询方…...

旧手机秒变电脑摄像头:DroidCam创新应用指南

旧手机秒变电脑摄像头:DroidCam创新应用指南 【免费下载链接】droidcam GNU/Linux/nix client for DroidCam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam 在远程办公与在线协作日益普及的今天,高质量摄像头成为必备工具。然而专用摄像…...

Phi-4-mini-reasoning实操手册:从模型加载到端口访问完整流程

Phi-4-mini-reasoning实操手册:从模型加载到端口访问完整流程 1. 模型概述 Phi-4-mini-reasoning是一款3.8B参数的轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。该模型由Azure AI Foundry开发,主打"小参数、强推…...

3MF格式与Blender插件实战解决方案:从设计障碍到3D打印全流程优化

3MF格式与Blender插件实战解决方案:从设计障碍到3D打印全流程优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 一、问题:当3D打印遭遇"数…...

QMCDecode:让QQ音乐加密文件重获自由的macOS工具

QMCDecode:让QQ音乐加密文件重获自由的macOS工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结…...