迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Pandas Masking

作者:迹忆客 最近更新:2023/03/21 浏览次数:

Pandas 是 Python 中的高级数据分析工具或包扩展。许多公司和组织需要高质量的数据分析才能大规模使用此工具。

数据分析师必须根据数据类型决定是否使用 pandas。当我们在 SQL 表、电子表格或异构列中有数据时,强烈建议使用 Pandas。

数据可以有序也可以无序,还支持时序数据。在本教程中,让我们了解如何在 pandas 中屏蔽数据。

屏蔽本质上是一种基于一个或多个条件过滤数据的方法。此掩码的输出通常是一个对象,该对象根据条件返回为 truefalse

在 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,其中包含日期的行和名为 valuevalue2 的两列。要查看数据中的条目,我们使用以下代码:

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 分钟的间隔后设置的时间相同。

创建了两个名为 valuevalue2 的附加列,其中我们将一些值设置为数字,而将其他值设置为 AlphaBeta

使用 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 技术,我们可以根据我们的要求并基于一个或多个条件有效地过滤数据。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

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 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便