使用 Pandas 进行数据规范化
在本文中,我们将学习如何在 Pandas 中规范化数据。让我们先讨论一些概念:
- Pandas: Pandas 是一个建立在 NumPy 库之上的开源库。它是一个Python包,提供用于处理数值数据和统计的各种数据结构和操作。它主要用于更轻松地导入和分析数据。 Pandas 速度快,对用户来说是高性能和高效的。
- 数据规范化:数据规范化也可能是机器学习中的一种典型做法,它包括将数字列转换为标准比例。在机器学习中,某些特征值与其他特征值多次不同。具有较高值的特征将主导学习过程。
需要的步骤
在这里,我们将应用一些技术来规范化数据,并在示例的帮助下进行讨论。为此,让我们了解使用 Pandas 进行数据规范化所需的步骤。
- 导入库(熊猫)
- 导入/加载/创建数据。
- 使用该技术对数据进行规范化。
例子
在这里,我们通过一些随机值创建数据并对其应用一些归一化技术。
Python3
# importing packages
import pandas as pd
# create data
df = pd.DataFrame([
[180000, 110, 18.9, 1400],
[360000, 905, 23.4, 1800],
[230000, 230, 14.0, 1300],
[60000, 450, 13.5, 1500]],
columns=['Col A', 'Col B',
'Col C', 'Col D'])
# view data
display(df)
Python3
import matplotlib.pyplot as plt
df.plot(kind = 'bar')
Python3
# copy the data
df_max_scaled = df.copy()
# apply normalization techniques
for column in df_max_scaled.columns:
df_max_scaled[column] = df_max_scaled[column] / df_max_scaled[column].abs().max()
# view normalized data
display(df_max_scaled)
Python3
import matplotlib.pyplot as plt
df_max_scaled.plot(kind = 'bar')
Python3
# copy the data
df_min_max_scaled = df.copy()
# apply normalization techniques
for column in df_min_max_scaled.columns:
df_min_max_scaled[column] = (df_min_max_scaled[column] - df_min_max_scaled[column].min()) / (df_min_max_scaled[column].max() - df_min_max_scaled[column].min())
# view normalized data
print(df_min_max_scaled)
Python3
import matplotlib.pyplot as plt
df_min_max_scaled.plot(kind = 'bar')
Python3
# copy the data
df_z_scaled = df.copy()
# apply normalization techniques
for column in df_z_scaled.columns:
df_z_scaled[column] = (df_z_scaled[column] -
df_z_scaled[column].mean()) / df_z_scaled[column].std()
# view normalized data
display(df_z_scaled)
Python3
import matplotlib.pyplot as plt
df_z_scaled.plot(kind='bar')
输出:
查看此数据框的图:
蟒蛇3
import matplotlib.pyplot as plt
df.plot(kind = 'bar')
让我们一一应用归一化技术。
使用最大绝对缩放
最大绝对缩放通过将每个观测值除以其最大绝对值来重新缩放 -1 和 1 之间的每个特征。我们可以使用 .max() 和 .abs() 方法在 Pandas 中应用最大绝对缩放,如下所示。
蟒蛇3
# copy the data
df_max_scaled = df.copy()
# apply normalization techniques
for column in df_max_scaled.columns:
df_max_scaled[column] = df_max_scaled[column] / df_max_scaled[column].abs().max()
# view normalized data
display(df_max_scaled)
输出 :
查看此数据框的图:
蟒蛇3
import matplotlib.pyplot as plt
df_max_scaled.plot(kind = 'bar')
输出:
使用最小-最大特征缩放
min-max 方法(通常称为归一化)通过减去特征的最小值然后除以范围,将特征重新缩放到 [0,1] 的硬且快速的范围。我们可以使用 .min() 和 .max() 方法在 Pandas 中应用最小-最大缩放。
蟒蛇3
# copy the data
df_min_max_scaled = df.copy()
# apply normalization techniques
for column in df_min_max_scaled.columns:
df_min_max_scaled[column] = (df_min_max_scaled[column] - df_min_max_scaled[column].min()) / (df_min_max_scaled[column].max() - df_min_max_scaled[column].min())
# view normalized data
print(df_min_max_scaled)
输出 :
让我们用这个数据框画一个图:
蟒蛇3
import matplotlib.pyplot as plt
df_min_max_scaled.plot(kind = 'bar')
使用 z-score 方法
z-score 方法(通常称为标准化)将信息转换为均值为 0 且典型偏差为 1 的分布。通过减去相应特征的均值然后除以质量偏差来计算每个标准化值。
蟒蛇3
# copy the data
df_z_scaled = df.copy()
# apply normalization techniques
for column in df_z_scaled.columns:
df_z_scaled[column] = (df_z_scaled[column] -
df_z_scaled[column].mean()) / df_z_scaled[column].std()
# view normalized data
display(df_z_scaled)
输出 :
让我们用这个数据框画一个图。
蟒蛇3
import matplotlib.pyplot as plt
df_z_scaled.plot(kind='bar')
概括
数据规范化包括将数字列重新建模为标准比例。在Python中,我们将以非常简单的方式实现数据规范化。 Pandas 库包含多种内置方法,用于计算最常见的描述性统计函数,这使得数据规范化技术非常容易实现。