用Pandas进行数据规范化
在这篇文章中,我们将学习如何在Pandas中对数据进行标准化。让我们先来讨论一些概念。
- Pandas。Pandas是一个建立在NumPy库之上的开源库。它是一个Python包,提供各种数据结构和操作,用于操作数字数据和统计。它主要因导入和分析数据更容易而流行。Pandas速度快,对用户来说,它是高性能和高生产力的。
- 数据归一化:数据归一化也可能是机器学习中的一个典型做法,它包括将数字列转换为标准尺度。在机器学习中,一些特征值与其他特征值有多次差异。具有较高数值的特征将在学习过程中占据主导地位。
需要的步骤
在这里,我们将应用一些技术来规范化数据,并在例子的帮助下讨论这些技术。为此,让我们了解一下用Pandas进行数据规范化的步骤。
1.导入库(Pandas)
2.导入/加载/创建数据
3.使用技术对数据进行规范化处理
示例
在这里,我们通过一些随机值创建数据,并对其应用一些规范化技术。
# 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)
输出:
请看这个数据框架的图。
import matplotlib.pyplot as plt
df.plot(kind = 'bar')
让我们逐一应用规范化技术
使用 最大的绝对缩放比例
最大绝对缩放法通过将每个观察值除以其最大绝对值,在-1和1之间重新缩放每个特征。我们可以在Pandas中使用.max()和.abs()方法来应用最大绝对缩放,如下所示。
# 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)
输出 :
请看这个数据框架的图。
import matplotlib.pyplot as plt
df_max_scaled.plot(kind = 'bar')
输出:
使用最小-最大特征缩放法
最小-最大方法(通常称为归一化)通过减去特征的最小值,然后除以该范围,将特征重新划分为[0,1]的硬性范围。我们可以在Pandas中使用.min()和.max()方法来应用最小-最大比例。
# 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)
输出 :
让我们用这个数据框架画一个图。
import matplotlib.pyplot as plt
df_min_max_scaled.plot(kind = 'bar')
使用Z-score方法
z-score方法(通常称为标准化)将信息转化为平均值为0、典型偏差为1的分布。每个标准化值的计算方法是减去相应特征的平均值,然后除以质量偏差。
# 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)
输出 :
让我们用这个数据框架画一个图。
import matplotlib.pyplot as plt
df_z_scaled.plot(kind='bar')
总结
数据规范化包括将数字列重塑为一个标准尺度。在Python中,我们将以一种非常简单的方式实现数据规范化。Pandas库包含多种内置方法,用于计算最常见的描述性统计函数,这使得数据规范化技术非常容易实现。