Pandas数据筛选过滤(一):基础过滤方法
pandas的数据筛选过滤检索功能是其最基础也是最重要的功能之一。在pandas中最常用的几种数据过滤方式如下行列过滤选取指定的行或者列条件过滤对列的数据设置过滤条件函数过滤通过函数设置更加复杂的过滤条件在开始之前本篇文章使用的测试数据下载地址为https://download.csdn.net/download/qq_42692386/91724806这是一个1000行8列的雇员数据集列分别为员工姓名性别入职日期最近一次登录时间薪水奖金是否为高级管理人员小组部门为了使用方便在导入时我们首先将列名中的空格全部替换为下划线导入并处理数据代码如下importpandasaspd dfpd.read_csv(rC:\employees.csv)df.columns[column.replace( ,_)forcolumnindf.columns]当然也可以使用df.rename对列名进行更改。1. 行列过滤pandas中最常用的按行或者按列选择数据的函数是 loc 和 iloc。1.1 loc 函数loc函数通过标签索引选择行列数据行索引即为对应的索引序号即下图中的红框部分列索引即为列名可以在一个语句中同时指定行和列的条件。选取第二行。注意列索引是从0开始的所以第二行对应的列索引是1.#如下两个方法返回的结果一致都是返回数据第二行df.loc[1]df.loc[1,:]选取连续多行dfdf.loc[1:5,:]输出的结果为First_Name Gender Start_Date ... Bonus Senior_Management Team 1 Thomas Male 1996/3/31 ... 2582.60610 True NaN 2 Maria Female 1993/4/23 ... 15485.36220 False Finance 3 Jerry Male 2005/3/4 ... 12955.04700 True Finance 4 Larry Male 1998/1/24 ... 1402.94556 True Client Services 5 Dennis Male 1987/4/18 ... 11660.25375 False Legal [5 rows x 8 columns]选取指定的行df.loc[[1,5],:]输出的结果为First_Name Gender Start_Date ... Bonus Senior_Management Team 1 Thomas Male 1996/3/31 ... 2582.60610 True NaN 5 Dennis Male 1987/4/18 ... 11660.25375 False Legal [2 rows x 8 columns]对于列也是同样的逻辑。#选取连续多列df.loc[:,Bonus:Team]#选取指定的列df.loc[:,[Bonus,Team]]对于行和列也可以同时设置进行筛选df.loc[1:4,[First_Name,Team]]筛选结果为First_Name Team 1 Thomas NaN 2 Maria Finance 3 Jerry Finance 4 Larry Client Services直接取一列、多列数据也可以直接简写为df[col]# 取Team这一列df[Team]# 取First_NameTeam两列df[[First_Name,Team]]注意注意如下不同写法返回的数据类型的差异容易踩坑df[col]→ Seriesdf[[col]]→ DataFrame双层中括号df.loc[:, [col]]→ DataFramedf.loc[:, col]→ Series1.2 iloc 函数iloc函数通过整数位置索引选择行列数据。这种方法与loc方法类似但是它使用整数位置而不是标签。选取连续多行df.iloc[1:5,:]筛选结果为First_Name Gender Start_Date ... Bonus Senior_Management Team 1 Thomas Male 1996/3/31 ... 2582.60610 True NaN 2 Maria Female 1993/4/23 ... 15485.36220 False Finance 3 Jerry Male 2005/3/4 ... 12955.04700 True Finance 4 Larry Male 1998/1/24 ... 1402.94556 True Client Services [4 rows x 8 columns]注意这里可以看出iloc和loc的区别同样的范围[1:5]iloc不包括index5的数据而loc是包括index5的数据。选择指定的行df.iloc[[1,5],:]和loc的结果是一致的筛选连续多列df.iloc[:,0:3]注意这里是 iloc和loc的另一个区别iloc只能用数字序列来表示列的范围第一列对应数字0回顾之前的loc函数我们可以用列名来表示范围的df.loc[:, “年份”:“指标中文”]。另外iloc表示列的范围0:3表示是0,1,2三列不包括3这一列。同样iloc也可以行和列同时设置df.iloc[1:5,[0,2]]iloc还可以从后往前筛选行和列#筛选最后三行df.iloc[-3:,:]#筛选最后三列df.iloc[:,-3:]同时筛选最后三行三列 df.iloc[-3:,-3:]1.3 iloc和loc函数的区别之前说过loc是通过索引标签来定位的而iloc是通过位置标签定位了可以通过下面的例子来看出两者的区别。首先对于导入的数据进行随机打乱dfdf.sample(frac1.0)之后对于打乱的数据使用loc筛选df.loc[1:5,:]结果为First_Name Gender ... Senior_Management Team 1 Thomas Male ... True NaN 719 John Male ... False Engineering 212 Lisa Female ... False Client Services 527 Helen NaN ... False Product 685 NaN Male ... NaN Finance .. ... ... ... ... ... 361 Margaret Female ... False Sales 581 Ernest Male ... False Marketing 312 Gerald Male ... True Sales 676 Annie Female ... True Marketing 5 Dennis Male ... False Legal [535 rows x 8 columns]可以看到打乱顺序后loc筛选仍然是连续筛选索引为1到5之间所有的行。由于是随机打乱所以每次运行的结果不一样甚至可能会出现结果为空而使用iloc筛选df.iloc[1:5,:]结果为First_Name Gender ... Senior_Management Team 957 Jeffrey Male ... True Sales 82 Steven Male ... True Client Services 249 Betty Female ... True Business Development 980 Kimberly Female ... True Engineering [4 rows x 8 columns]即不论顺序如何变永远选取第二行到第五行的数据。2. 条件过滤行列过滤的方式是基于索引和列名称来过滤的除此之外还可以根据列的值来过滤。2.1 单条件根据列的值来过滤列的值是数值还是字符串都可以。#筛选Bonus列大于100000的df[df[Bonus]100000]#筛选First_Name列为Barbara的dfdf[df[First_Name]Barbara]#筛选First_Name列中包含ice的要先删除空子还可以使用其他的str方法设置不同的条件dfdf.dropna(subset[First_Name])dfdf[df[First_Name].str.contains(ice)]2.2 多条件除了设置单独的条件之外也支持通过逻辑符号和|来设置多个条件。例如筛选Salary大于149000和Gender为Female的df[(df[Salary]149000)(df[Gender]Female)]筛选后有六行数据符合要求。First_Name Gender ... Senior_Management Team 160 Kathy Female ... True Finance 186 NaN Female ... NaN Sales 429 Rose Female ... False Human Resources 644 Katherine Female ... False Finance 793 Andrea Female ... True Distribution 828 Cynthia Female ... False Product [6 rows x 8 columns]而筛选满足Salary大于149000或Gender为Female的任意一个条件的只要将逻辑符号“与”改为“或”|即可df[(df[Salary]149000)|(df[Gender]Female)]逻辑符号可以重复和嵌套使用根据具体的逻辑编写即可。参考文章https://www.cnblogs.com/wang_yb/p/17388485.html

相关新闻

Linux打印机驱动告别折腾:foo2zjs三步让百款老机型复活

Linux打印机驱动告别折腾:foo2zjs三步让百款老机型复活

Linux打印机驱动告别折腾:foo2zjs三步让百款老机型复活 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 关键词自检清单 核心关键词&#xff…

2026/8/20 16:20:48 阅读更多 →
5分钟交付一支成片:开源AI短视频引擎Pixelle-Video,一句话搞定文案配图与配音

5分钟交付一支成片:开源AI短视频引擎Pixelle-Video,一句话搞定文案配图与配音

5分钟交付一支成片:开源AI短视频引擎Pixelle-Video,一句话搞定文案配图与配音 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixell…

2026/8/20 16:20:48 阅读更多 →
《魔兽争霸3》兼容问题彻底解决:免费开源辅助工具 WarcraftHelper 完整上手指南

《魔兽争霸3》兼容问题彻底解决:免费开源辅助工具 WarcraftHelper 完整上手指南

《魔兽争霸3》兼容问题彻底解决:免费开源辅助工具 WarcraftHelper 完整上手指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 如果你的《…

2026/8/20 16:19:48 阅读更多 →

最新新闻

移动机器人精准定位与无缝对接技术:从ROS仿真到工业实践

移动机器人精准定位与无缝对接技术:从ROS仿真到工业实践

在实际工业自动化、仓储物流和智能制造场景中,物料搬运的自动化水平直接关系到生产效率与运营成本。传统的人工搬运或固定轨道式AGV(自动导引车)在面对复杂、动态的产线布局或需要与多种设备(如机械臂、传送带、工作站&#xff09…

2026/8/21 19:04:42 阅读更多 →
Harness Engineering:构建高效软件交付体系的三大核心支柱

Harness Engineering:构建高效软件交付体系的三大核心支柱

大家好,我是专注于技术架构与工程效能领域的博主。在当今追求快速迭代与高质量交付的软件开发环境中,你是否也常常面临这样的困境:代码部署流程繁琐且易错,线上问题难以快速定位,不同环境配置差异导致“在我机器上能跑…

2026/8/21 19:04:42 阅读更多 →
西数硬盘固件故障修复实战:T2编辑器处理2.1.7.x 190错误全流程

西数硬盘固件故障修复实战:T2编辑器处理2.1.7.x 190错误全流程

这类工具最值得先看的不是功能列表,而是能不能在普通环境里稳定跑起来。WD 2.1.7.x 190故障,核心是西数硬盘的一种特定固件故障,而T2编辑器是MRT数据恢复工具集里专门处理这类固件问题的模块。它解决的不是普通文件误删,而是硬盘“…

2026/8/21 19:04:42 阅读更多 →
基于Kubernetes构建高效稳定开发集群:从原理到实践的全链路指南

基于Kubernetes构建高效稳定开发集群:从原理到实践的全链路指南

在实际的软件研发团队中,开发集群的性能与稳定性直接决定了团队的交付效率和创新能力。一个响应迟缓、频繁出错的开发环境,不仅会严重挫伤工程师的积极性,更会成为产品快速迭代的瓶颈。SemiAnalysis 的观点“速度即护城河,稳定开发…

2026/8/21 19:04:42 阅读更多 →
Mapshaper 完整指南:Shapefile 编辑、GeoJSON 简化与免费格式转换

Mapshaper 完整指南:Shapefile 编辑、GeoJSON 简化与免费格式转换

Mapshaper 完整指南:Shapefile 编辑、GeoJSON 简化与免费格式转换 【免费下载链接】mapshaper Tools for editing Shapefile, GeoJSON, TopoJSON and CSV files 项目地址: https://gitcode.com/gh_mirrors/ma/mapshaper 当你拿到一份几十 MB 的 GeoJSON&…

2026/8/21 19:04:42 阅读更多 →
快速提升图片质感:Oblique圆角与阴影效果的完整配置教程

快速提升图片质感:Oblique圆角与阴影效果的完整配置教程

快速提升图片质感:Oblique圆角与阴影效果的完整配置教程 【免费下载链接】Oblique With Oblique explore new styles of displaying images 项目地址: https://gitcode.com/gh_mirrors/ob/Oblique 想让 Android 应用中的图片告别千篇一律的直角方块&#xff…

2026/8/21 19:03:42 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →