Pandas Masking
Pandas 是 Python 中的高级数据分析工具或包扩展。许多公司和组织需要高质量的数据分析才能大规模使用此工具。
数据分析师必须根据数据类型决定是否使用 pandas。当我们在 SQL 表、电子表格或异构列中有数据时,强烈建议使用 Pandas。
数据可以有序也可以无序,还支持时序数据。在本教程中,让我们了解如何在 pandas 中屏蔽数据。
屏蔽本质上是一种基于一个或多个条件过滤数据的方法。此掩码的输出通常是一个对象,该对象根据条件返回为 true
或 false
。
在 Pandas 中使用 dates_data
创建一个虚拟 DataFrame
它可以理解为 DataFrame 的高级 If-Else
方案。但是,我们将首先使用 dates_data
创建一个虚拟 DataFrame 以及几行。
import pandas as pd
index = pd.date_range('2013-1-1',periods=100,freq='30Min')
dates_data = pd.DataFrame(data=list(range(100)), columns=['value'], index=index)
dates_data['value2'] = 'Alpha'
dates_data['value2'].loc[0:10] = 'Beta'
代码块创建一个 DataFrame,其中包含日期的行和名为 value
和 value2
的两列。要查看数据中的条目,我们使用以下代码:
print(dates_data)
输出:
value value2
2013-01-01 00:00:00 0 Beta
2013-01-01 00:30:00 1 Beta
2013-01-01 01:00:00 2 Beta
2013-01-01 01:30:00 3 Beta
2013-01-01 02:00:00 4 Beta
... ... ...
2013-01-02 23:30:00 95 Alpha
2013-01-03 00:00:00 96 Alpha
2013-01-03 00:30:00 97 Alpha
2013-01-03 01:00:00 98 Alpha
2013-01-03 01:30:00 99 Alpha
正如我们所看到的,我们有 100 个不同的条目,每个条目在 30 分钟的间隔后设置的时间相同。
创建了两个名为 value
和 value2
的附加列,其中我们将一些值设置为数字,而将其他值设置为 Alpha
或 Beta
。
使用 Masking
过滤 Pandas 中的数据
屏蔽是 Pandas 中的一个高级概念,分析师试图根据特定条件过滤数据。
可以根据一个或多个条件过滤此数据。我们将尝试在这里详细探讨这些案例中的每一个。
让我们从过滤数据开始,这样我们只希望从我们的 DataFramedates_data
中获取条目。
mask = dates_data['value2'] == 'Beta'
print(dates_data[mask])
输出:
value value2
2013-01-01 00:00:00 0 Beta
2013-01-01 00:30:00 1 Beta
2013-01-01 01:00:00 2 Beta
2013-01-01 01:30:00 3 Beta
2013-01-01 02:00:00 4 Beta
2013-01-01 02:30:00 5 Beta
2013-01-01 03:00:00 6 Beta
2013-01-01 03:30:00 7 Beta
2013-01-01 04:00:00 8 Beta
2013-01-01 04:30:00 9 Beta
我们在 dates_data
DataFrame 的 value2
列中有仅与 Beta
值相关的条目。
通过这种方式,我们可以创建一个掩码,然后将该掩码叠加在我们的数据上以过滤数据。这个掩码也可以理解为过滤掉某些数据的模板。
我们将从 value
列中过滤具有特定范围值的数据,并且仅从 dates_data
DataFrame 中的 value2
列中过滤 Beta
值。
mask = (dates_data['value2'] == 'Beta') & (dates_data['value'] > 3)
print(dates_data[mask])
输出:
value value2
2013-01-01 02:00:00 4 Beta
2013-01-01 02:30:00 5 Beta
2013-01-01 03:00:00 6 Beta
2013-01-01 03:30:00 7 Beta
2013-01-01 04:00:00 8 Beta
2013-01-01 04:30:00 9 Beta
正如我们在上面的代码块中看到的那样,我们已经成功过滤了数据,因此我们在 value
列中只有大于 3 的值,而在 value2
列中只有值 Beta
。
因此,借助 Pandas 中的 Masking
技术,我们可以根据我们的要求并基于一个或多个条件有效地过滤数据。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。