掌握Pandas数据筛选方法与高级应用全解析【第70篇—python:数据筛选】

文章目录

  • 掌握Pandas:数据筛选方法与高级应用全解析
    • 1. between方法
    • 2. isin方法
    • 3. loc方法
    • 4. iloc方法
    • 5. 查询复杂条件的结合应用
    • 6. 避免inplace参数
    • 7. 利用Lambda函数进行自定义筛选
    • 8. 处理缺失值
    • 9. 多条件排序
    • 10. 数据统计与分组
  • 总结:

掌握Pandas:数据筛选方法与高级应用全解析

在数据分析和处理中,Pandas是一款强大的Python库,提供了丰富的功能来操作和处理数据。本文将深入介绍Pandas中几种常用的数据筛选方法:betweenisinlociloc,并通过代码实例和解析展示它们的用法和优势。

image-20240210173650099

1. between方法

between方法用于筛选数据框中某列的数值在指定范围内的行。下面是一个简单的例子:

import pandas as pd# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 35],'Salary': [50000, 60000, 45000, 70000]}df = pd.DataFrame(data)# 使用between筛选年龄在25到30之间的行
filtered_df = df[df['Age'].between(25, 30)]print(filtered_df)

这段代码将输出包含年龄在25到30之间的行的数据框。

image-20240210173404458

2. isin方法

isin方法用于筛选数据框中某列的数值是否在给定的列表中。以下是一个例子:

# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Department': ['HR', 'IT', 'Finance', 'Marketing']}df = pd.DataFrame(data)# 使用isin筛选属于IT或Marketing部门的行
filtered_df = df[df['Department'].isin(['IT', 'Marketing'])]print(filtered_df)

这段代码将输出包含属于IT或Marketing部门的行的数据框。

image-20240210173436158

3. loc方法

loc方法基于标签来进行行列选择。以下是一个示例:

# 使用loc筛选年龄在25到30之间的行,并选择Name列和Age列
filtered_df = df.loc[df['Age'].between(25, 30), ['Name', 'Age']]print(filtered_df)

这段代码将输出包含年龄在25到30之间的行,并选择Name列和Age列的数据框。

4. iloc方法

iloc方法基于整数位置来进行行列选择。以下是一个示例:

# 使用iloc筛选第2到第3行,并选择第1到第2列
filtered_df = df.iloc[1:3, 0:2]print(filtered_df)

这段代码将输出包含第2到第3行,第1到第2列的数据框。

通过学习这些Pandas常用的数据筛选方法,你将能更灵活地处理和分析数据,提高数据处理的效率。希望这篇文章能够帮助你更好地利用Pandas进行数据分析工作。

image-20240210173456443

5. 查询复杂条件的结合应用

除了单独使用这些方法外,我们还可以将它们组合起来,以满足更复杂的条件筛选需求。以下是一个综合运用的例子:

# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 35],'Salary': [50000, 60000, 45000, 70000],'Department': ['HR', 'IT', 'Finance', 'Marketing']}df = pd.DataFrame(data)# 使用复杂条件筛选:年龄在25到30之间且属于IT或Marketing部门的行,并选择Name和Salary列
filtered_df = df.loc[(df['Age'].between(25, 30)) & (df['Department'].isin(['IT', 'Marketing'])), ['Name', 'Salary']]print(filtered_df)

这段代码将输出包含年龄在25到30之间且属于IT或Marketing部门的行,并选择Name和Salary列的数据框。

6. 避免inplace参数

在Pandas中,这些方法通常返回新的数据框,而不是修改原始数据框。因此,我们应该避免使用inplace参数,而是将结果赋值给新的变量。这样可以更好地维护数据的可追溯性。

# 不推荐使用inplace参数
df.drop('Department', axis=1, inplace=True)# 推荐的方式:将结果赋值给新的变量
new_df = df.drop('Department', axis=1)

通过遵循这个规则,我们能够更好地追踪数据处理的步骤,减少潜在的错误。

7. 利用Lambda函数进行自定义筛选

除了上述方法外,还可以使用apply方法结合Lambda函数进行自定义筛选。这种方法在处理需要根据列的某些特定条件进行筛选的情况下非常有用。

# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 35],'Salary': [50000, 60000, 45000, 70000],'Department': ['HR', 'IT', 'Finance', 'Marketing']}df = pd.DataFrame(data)# 使用Lambda函数筛选年龄大于30的行,并选择Name和Department列
filtered_df = df[df.apply(lambda row: row['Age'] > 30, axis=1)][['Name', 'Department']]print(filtered_df)

这段代码将输出包含年龄大于30的行,并选择Name和Department列的数据框。

image-20240210173517728

8. 处理缺失值

在数据处理中,处理缺失值也是一个常见的任务。使用dropna方法可以轻松删除包含缺失值的行或列。

# 创建含有缺失值的示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, None, 22, 35],'Salary': [50000, 60000, 45000, None],'Department': ['HR', 'IT', 'Finance', 'Marketing']}df = pd.DataFrame(data)# 删除包含缺失值的行
cleaned_df = df.dropna()print(cleaned_df)

上述代码将删除包含缺失值的行,得到一个不含缺失值的新数据框。

9. 多条件排序

Pandas提供了sort_values方法,可以根据一列或多列的值进行排序。这在数据分析中常常用于观察数据的趋势或找出关键信息。

# 创建示例数据框
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 35],'Salary': [50000, 60000, 45000, 70000],'Department': ['HR', 'IT', 'Finance', 'Marketing']}df = pd.DataFrame(data)# 按照年龄升序、工资降序的顺序进行排序
sorted_df = df.sort_values(by=['Age', 'Salary'], ascending=[True, False])print(sorted_df)

这段代码将输出一个根据年龄升序、工资降序排序的数据框。

10. 数据统计与分组

Pandas中的groupby方法允许我们根据某一列的值将数据框分组,然后对每个组进行统计或其他操作。

# 创建示例数据框
data = {'Department': ['HR', 'IT', 'Finance', 'Marketing', 'HR', 'IT', 'Marketing'],'Salary': [50000, 60000, 45000, 70000, 55000, 65000, 72000]}df = pd.DataFrame(data)# 按照部门分组,并计算每个部门的平均工资
grouped_df = df.groupby('Department')['Salary'].mean()print(grouped_df)

这段代码将输出每个部门的平均工资。

通过这些高级的Pandas操作,我们能够更加深入地挖掘数据的信息,进行更复杂的分析和处理。这些技巧对于数据科学家和分析师来说都是非常有用的工具。

image-20240210173544838

总结:

本文深入介绍了Pandas中几种常用的数据筛选和处理方法,包括betweenisinlociloc、Lambda函数、多条件排序、数据统计与分组等。通过代码实例和解析,读者能够更全面地了解这些方法的用法和优势。

首先,我们学习了between方法,用于筛选指定范围内的数据。然后,介绍了isin方法,可以根据给定的列表筛选数据。接着,深入讲解了lociloc方法,分别基于标签和整数位置进行行列选择。通过这些方法,我们可以在数据框中轻松定位和提取感兴趣的数据。

进一步,我们了解了如何结合Lambda函数进行自定义筛选,处理复杂的条件需求。同时,强调了避免使用inplace参数的最佳实践,以维护数据处理的可追溯性。

在处理缺失值方面,我们使用dropna方法清理数据,确保得到不含缺失值的数据框。此外,学习了多条件排序和数据统计与分组的高级应用,使数据分析更加灵活和有深度。

通过这篇文章,读者将掌握使用Pandas进行数据处理和分析的关键技巧,能够更有效地应对各种数据处理任务,提高工作效率。希望这些知识能够帮助读者更自信地探索和分析数据,为数据科学和分析领域的工作提供实用的工具和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE 游戏编程基础知识】

目录 0 引言1 基础知识1.1 拓展:3D数学和计算机图形学的关系 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE 游戏编程基础知识】❣️ 寄语:书到用时方恨少,事…

工业级加固平板丨亿道三防平板电脑丨安卓工业平板丨改善车队管理

在现代物流和运输行业中,车队管理是一个复杂而重要的任务。为了更好地管理车队,提高工作效率和减少成本,许多企业正在采用新技术和工具。其中,三防平板电脑作为一种功能强大且适应恶劣环境的设备,已经在车队管理中得到…

【电路】三个晶体管的声控开关电路

这种声控开关,可能是非常有用的,例如敲门声或拍手声可以激活一盏灯,灯光几秒钟后会自动关闭。另一种使用在防盗保护,如果有人想打开门或打破东西,灯就会亮起来,这表明有人在家。 该电路可以工作于任何5–1…

opencv图像像素的读写操作

void QuickDemo::pixel_visit_demo(Mat & image) {int w image.cols;//宽度int h image.rows;//高度int dims image.channels();//通道数 图像为灰度dims等于一 图像为彩色时dims等于三 for (int row 0; row < h; row) {for (int col 0; col < w; col) {if…

【2024年数据】67个“绿色金融”主题DID政策汇总(已去重)

DID”发文趋势和主题分布 数据来源&#xff1a;中国知网、各期刊官网 时间跨度&#xff1a;2017-2024年 数据范围&#xff1a;中国各省 数据指标&#xff1a; 序号 用于构建DID的政策 文献标题 1 “宽带中国” 数字技术创新与中国企业高质量发展——来自企业数字专利的证据…

板块一 Servlet编程:第二节 Servlet的实现与生命周期 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程&#xff1a;第二节 Servlet的实现与生命周期 一、Servlet相关概念Serlvet的本质 二、中Web项目中实现Servlet规范&#xff08;1&#xff09;在普通的Java类中继承HttpServlet类&#xff08;2&#xff09;重写service方法编辑项目对外访问路径 二、Servlet工…

【电路笔记】-串联电感

串联电感 文章目录 串联电感1、概述2、电感串联示例13、互耦串联电感器4、电感串联示例25、电感串联示例36、总结 当电感器以菊花链方式连接在一起并共享公共电流时&#xff0c;它们可以串联连接在一起。 1、概述 这些电感器的互连产生了更复杂的网络&#xff0c;其总电感是各…

C++ 中的模型预测控制(01/2)

目录 一、说明二、MPC原理说明三、分解算法的来源并显示关键特征&#xff0c;四、C 实现说明五、平衡 Q 和 R六、资源下载地址 一、说明 以下文章介绍了应用模型预测控制器的简单控制系统方法。本文讨论了这种控制的基本机制&#xff0c;该机制适用于各种工程领域。 MPC 涉及对…

【VTKExamples::PolyData】第二十六期 IterateOverLine

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例IterateOverLine,讲解如何遍历线,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. IterateOverLine There…

接口自动化测试,完整入门篇

目录 1. 什么是接口测试2. 基本流程3. 需求分析4. 用例设计5. 脚本开发6. 结果分析7. 完整脚本8. 参考资料 1. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以…

【机器学习】支持向量机(SVM)

支持向量机&#xff08;SVM&#xff09; 1 背景信息 分类算法回顾 决策树 样本的属性非数值 目标函数是离散的 贝叶斯学习 样本的属性可以是数值或非数值目标函数是连续的&#xff08;概率&#xff09; K-近邻 样本是空间&#xff08;例如欧氏空间&#xff09;中的点目标函…

乐观锁,CAS,ABA问题,synchronized锁升级过程

常见的锁策略 乐观锁 vs 悲观锁 乐观锁&#xff1a;乐观锁假设认为数据一般情况下不会产生并发冲突&#xff0c;所以在数据进行提交更新的时候&#xff0c;才会正式对数据是否产生并发冲突进行检测&#xff0c;如果发现并发冲突了&#xff0c;则返回用户错误的信息&#xff0c…

FPGA_ip_Rom

一 理论 Rom存储类ip核&#xff0c;Rom是只读存储器的简称&#xff0c;是一种只能读出事先存储数据的固态半导体存储器。 特性&#xff1a; 一旦储存资料&#xff0c;就无法再将之改变或者删除&#xff0c;且资料不会因为电源关闭而消失。 单端口Rom: 双端口rom: 二 Rom ip核…

精品基于Spring boot的某小区物业缴费报修管理系统

《[含文档PPT源码等]精品基于Spring boot的某小区物业管理系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff1a;H…

MongoDB之概述、命令

基础知识 是什么 概念 分布式文件存储数据库&#xff0c;提供高可用、可扩展、易部署的数据存储解决方案。 结构 BSON存储类型 类似JSON的一种二进制存储格式。相比于JSON&#xff0c;提供更丰富的类型支持。 优点是灵活&#xff0c;缺点是空间利用率不佳。 类型说明解释…

创建菜单与游戏页面

bootstrap地址 Bootstrap v5 中文文档 Bootstrap 是全球最受欢迎的 HTML、CSS 和 JS 前端工具库。 | Bootstrap 中文网 (bootcss.com) 创建导航栏组件 web--src--components--NavBar.vue <!-- html --> <template><nav class"navbar navbar-expand-lg n…

机器学习:Softmax介绍及代码实现

Softmax原理 Softmax函数用于将分类结果归一化&#xff0c;形成一个概率分布。作用类似于二分类中的Sigmoid函数。 对于一个k维向量z&#xff0c;我们想把这个结果转换为一个k个类别的概率分布p(z)。softmax可以用于实现上述结果&#xff0c;具体计算公式为&#xff1a; 对于…

GO语言笔记4-标识符、关键字与运算符

标识符 什么是标识符 变量名、方法名等我们起的名字都是标识符 标识符定义规则 字母、数字、下划线组成不可以数字开头&#xff0c;严格区分大小写&#xff0c;不能带有空格&#xff0c;不可以是go的关键字不能单独使用 下划线&#xff0c;因为下划线在GO中是一个特殊标识符&…

2024刘谦春晚第二个扑克牌魔术

前言 就是刚才看春晚感觉这个很神奇&#xff0c;虽然第一个咱模仿不过来&#xff0c;第二个全国人民这么多人&#xff0c;包括全场观众都有成功&#xff0c;这肯定是不需要什么技术&#xff0c;那我觉得这个肯定就是数学了&#xff0c;于是我就胡乱分析一通。 正文 首先准备…

【蓝桥杯冲冲冲】k 短路 / [SDOI2010] 魔法猪学院

蓝桥杯备赛 | 洛谷做题打卡day33 文章目录 蓝桥杯备赛 | 洛谷做题打卡day33题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模数据更新日志 题解代码我的一些话 【模板】k 短路 / [SDOI2010] 魔法猪学院 题目背景 注&#xff1a;对于 k k k 短路问…