数据分析Pandas专栏---第九章<Pandas数据筛选和过滤(1)>

news/2024/4/17 7:38:13

前言:

Pandas数据筛选和过滤在数据分析和处理中起着至关重要的作用。无论是清理数据、提取有效信息,还是进行统计分析,有效地筛选和过滤数据是关键步骤之一。

通过数据筛选,我们可以根据特定条件选择感兴趣的数据子集,并排除不相关或不需要的数据。这使得我们能够更好地理解数据、发现隐藏的模式和趋势。数据筛选还有助于检查和处理空缺值、异常值和错误数据,确保我们所使用的数据准确和可靠。

Pandas提供了丰富的筛选和过滤方法,如布尔索引、位置索引以及条件筛选等。我们可以根据需要自由组合这些方法,以便快速、灵活地操作数据。这样,我们能够轻松选择特定列或行,并进行条件查找、比较和逻辑运算。

有效的数据筛选和过滤使得我们能够更精确地分析数据、做出准确的决策,并提高工作效率。无论是探索性数据分析还是建模预测,良好的筛选和过滤技术可以帮助我们发现有价值的信息和见解,支持数据驱动的业务决策和创新。

因此,熟练掌握Pandas数据筛选和过滤是数据分析人员必备的技能之一。它不仅提供了对数据的灵活处理能力,而且能够加速分析流程并提高工作质量。

正文:

基本数据筛选和过滤技术

A. 布尔索引

1. 介绍布尔索引的概念和用法

布尔索引在Pandas中是一种强大的工具,可以帮助我们根据条件快速筛选和过滤数据。简单来说,布尔索引是通过创建一个布尔(True/False)值数组来选择数据的方法

2. 如何使用布尔索引筛选行和列

假设我们有一个包含学生信息的数据集,其中包括姓名、年龄和成绩三列。我们想要找出成绩高于80分的学生的相关信息。首先,我们可以使用比较运算符(如>)来创建一个布尔索引,指示每个学生是否满足条件。

import pandas as pd# 创建示例数据
data = {'姓名': ['小明', '小红', '小刚', '小华'],'年龄': [18, 20, 19, 21],'成绩': [75, 92, 85, 78]}df = pd.DataFrame(data)# 使用布尔索引筛选行
bool_index = df['成绩'] > 80
filtered_df = df[bool_index]print(filtered_df)

运行以上代码,我们将得到满足条件的学生数据:

  姓名  年龄  成绩
1  小红  20  92
2  小刚  19  85

除了筛选行,我们还可以使用布尔索引来筛选列。假设我们只关心成绩高于80分的学生姓名和年龄,我们可以使用以下代码:

# 使用布尔索引筛选列
columns = ['姓名', '年龄']
filtered_df = df.loc[bool_index, columns]print(filtered_df)

运行以上代码,我们将得到以下结果:

  姓名  年龄
1  小红  20
2  小刚  19

通过布尔索引,我们可以根据复杂的条件快速筛选和过滤数据,从而灵活地处理和分析数据。不论是在数据分析、数据清洗或者数据可视化方面,布尔索引都是一项重要的技术工具,能够提升我们的工作效率和准确性。

B. 使用loc和iloc的位置索引

1. 说明loc和iloc的区别和用法

使用lociloc进行位置索引,以选择和筛选行和列。这两个索引器有一些区别,让我们一起来了解一下它们的用法和区别

  1. loc使用标签索引(Label-based indexing)进行选择。它接受标签作为输入,并根据这些标签来选择数据。这意味着我们可以使用行或列的标签来进行选择。
  2. iloc使用整数索引(Integer-based indexing)进行选择。它接受整数作为输入,并根据这些整数来选择数据。这意味着我们可以使用行或列的整数位置来进行选择。
2. 如何使用loc和iloc进行行和列的选择和筛选

假设我们有一个包含学生信息的数据集,包括姓名、年龄和成绩三列。我们要选择索引为1和2的行,并选择姓名和成绩两列。

import pandas as pd# 创建示例数据
data = {'姓名': ['小明', '小红', '小刚', '小华'],'年龄': [18, 20, 19, 21],'成绩': [75, 92, 85, 78]}df = pd.DataFrame(data)# 使用loc进行选择
loc_selection = df.loc[1:2, ['姓名', '成绩']]
print("使用loc进行选择:")
print(loc_selection)# 使用iloc进行选择
iloc_selection = df.iloc[1:3, [0, 2]]
print("\n使用iloc进行选择:")
print(iloc_selection)

运行以上代码,我们将得到以下结果:

使用loc进行选择:姓名  成绩
1  小红  92
2  小刚  85使用iloc进行选择:姓名  成绩
1  小红  92
2  小刚  85

可以看到,使用lociloc都能达到我们的目标。但需要注意的是,loc是包含结束标签的,而iloc是不包含结束位置的。这是两者之间主要的区别之一。

总而言之,使用lociloc可以方便地根据标签或整数位置选择和筛选行和列。

了解它们之间的区别和使用方法将使我们能够更灵活地处理和操作数据。

无论是基于标签还是基于位置的操作,lociloc都是Pandas提供的强大工具,可以帮助我们轻松处理数据。

条件筛选和过滤

A. 使用比较运算符进行条件筛选

1. 如何使用比较运算符(例如等于、大于、小于等)进行条件筛选

当我们需要根据条件筛选和过滤数据时,比较运算符是非常有用的工具。

我们可以使用比较运算符来执行等于、大于、小于等操作,进而筛选出符合条件的数据。同时,我们也可以使用多个条件结合起来进行更复杂的筛选

2. 多条件筛选的技巧和示例
        1.使用比较运算符进行条件筛选:

假设我们有一个包含学生信息的数据集,其中包括姓名、年龄和成绩三列。我们想筛选年龄大于等于18岁的学生。可以使用大于等于运算符(>=)进行条件筛选。

import pandas as pd# 创建示例数据
data = {'姓名': ['小明', '小红', '小刚', '小华'],'年龄': [18, 20, 19, 21],'成绩': [75, 92, 85, 78]}df = pd.DataFrame(data)# 使用比较运算符进行条件筛选
filtered_df = df[df['年龄'] >= 18]print(filtered_df)

运行以上代码,我们将得到年龄大于等于18岁的学生数据:

  姓名  年龄  成绩
0  小明  18  75
1  小红  20  92
2  小刚  19  85
3  小华  21  78
        2.多条件筛选的技巧和示例:

除了基本的比较运算符,我们还可以将多个条件结合起来进行复杂的筛选。

假设我们要筛选成绩在80到90之间且年龄大于等于18岁的学生。我们可以使用逻辑运算符(如AND或OR)将多个条件组合在一起。

# 使用多条件筛选
filtered_df = df[(df['成绩'] >= 80) & (df['成绩'] <= 90) & (df['年龄'] >= 18)]print(filtered_df)

运行以上代码,我们将得到符合多个条件的学生数据:

  姓名  年龄  成绩
2  小刚  19  85

通过这个示例,我们可以理解如何使用逻辑运算符(如AND、OR)结合多个条件进行筛选。

无论是使用简单的比较运算符还是结合多个条件的复杂筛选,比较运算符都是一种强大而有用的工具,可以让我们灵活地筛选和过滤数据。

B. 使用isin()函数进行多值筛选

1. 介绍isin()函数的使用方法和功能

isin()函数是在Pandas中用于进行多值筛选的一种实用工具。它可以帮助我们筛选出某一列中包含指定值的行。

2. 如何使用isin()进行多个值的筛选
1.使用isin()函数进行多值筛选:

假设我们有一个包含学生信息的数据集,其中包括姓名、年龄和成绩三列。我们想筛选出成绩为75和85的学生。可以使用isin()函数进行多值筛选。

import pandas as pd# 创建示例数据
data = {'姓名': ['小明', '小红', '小刚', '小华'],'年龄': [18, 20, 19, 21],'成绩': [75, 92, 85, 78]}df = pd.DataFrame(data)# 使用isin()函数进行多值筛选
filtered_df = df[df['成绩'].isin([75, 85])]print(filtered_df)

运行以上代码,我们将得到成绩为75和85的学生数据:

  姓名  年龄  成绩
0  小明  18  75
2  小刚  19  85

---------------------------------------待续------------------------------------------------


https://www.xjx100.cn/news/3293469.html

相关文章

ubuntu常见配置

ubuntu各个版本的安装过程大差小不差&#xff0c;可以参考&#xff0c;ubuntu20.04 其它版本换一下镜像版本即可 安装之后需要配置基本的环境&#xff0c;我的话大概就以下内容&#xff0c;后续可能有所删改 sudo apt-get update sudo apt-get install gcc sudo apt-get inst…

这才是最适合普通人的短视频矩阵玩法

​牛丸哥&#xff0c;虽然他的内容平平无奇&#xff0c;直播间也就只有几十个人&#xff0c;但他就靠火力覆盖打法卖牛肉丸&#xff0c;卖了150万单&#xff01;你猜他之前发了多少条作品&#xff1f;15万条&#xff0c;全是流水线的内容&#xff0c;而且都有几十上百的点赞&am…

省市区街道/乡镇四级联动vue3

最近优化了一个省.市.区/县、乡镇/街道的四级联动组件&#xff0c;技术栈是element vue3记录一下。 本来是这样的三级联动&#xff1a; 这个三级联动很简单&#xff0c;直接利用el-select组件把地区值带进去就行了&#xff0c;现在要优化成省.市.区/县、乡镇/街道的四级联动&…

抖音上货API订单API:自动化上架商品批量获取商品详情信息

随着移动互联网的迅猛发展&#xff0c;短视频平台逐渐成为了全球用户的新宠。在中国&#xff0c;抖音作为一款短视频分享应用&#xff0c;凭借其独特的内容形式和创新的社交模式&#xff0c;迅速俘获了亿万用户的心。为了满足不断增长的用户需求和开发者社区的创新需求&#xf…

本地快速部署谷歌开放模型Gemma教程(基于LMStudio)

本地快速部署谷歌开放模型Gemma教程&#xff08;基于LMStudio&#xff09; 一、介绍 Gemma二、部署 Gemma2.1 部署工具2.1 部署步骤 三、总结 一、介绍 Gemma Gemma是一系列轻量级、最先进的开放式模型&#xff0c;采用与创建Gemini模型相同的研究和技术而构建。可以直接运行在…

前端使用类和方法封装的区别

在前端开发中&#xff0c;使用类和方法封装都是常见的方式来组织和管理代码。它们之间的主要区别在于&#xff1a; 类封装&#xff1a; 面向对象&#xff1a;类是面向对象编程的核心概念&#xff0c;通过类可以创建对象&#xff0c;对象可以包含属性和方法。封装性&#xff1a;…

uniapp 如何嵌套H5 页面?

如何在 uniapp项目中 嵌套h5页面 在UniApp中可以通过使用 web-view 组件来嵌入H5页面。 首先需要安装uni-app的依赖包&#xff0c;然后创建一个新的页面&#xff08;比如名为"WebPage.vue"&#xff09;作为容器页面&#xff0c;并将其放置于pages目录下。 接下来&…

【前端入门】设计模式+单多页+React

设计模式是一种解决特定问题的经验总结&#xff0c;它提供了经过验证的解决方案&#xff0c;可以在软件开发过程中使用。设计模式可以帮助前端开发人员更有效地组织和管理代码&#xff0c;并提供一种共享的语言和框架&#xff0c;以便与其他开发人员进行交流。 以下是一些常见…