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
技术,我们可以根据我们的要求并基于一个或多个条件有效地过滤数据。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串