在Pandas中规范化一个列

在Pandas中规范化一个列

在这篇文章中,我们将学习如何在Pandas中规范化一列。让我们先讨论一些概念。

  • Pandas。Pandas是一个建立在NumPy库之上的开源库。它是一个Python包,提供各种数据结构和操作,用于操作数字数据和统计。它主要因导入和分析数据更容易而流行。Pandas速度快,对用户来说,它是高性能和高生产力的。
  • 数据归一化。数据归一化也可能是机器学习中的一个典型做法,它包括将数字列转换为标准的刻度。在机器学习中,一些特征值与其他特征值有多次差异。具有较高数值的特征将在学习过程中占据主导地位。

需要的步骤

在这里,我们将应用一些技术来规范化列的值,并在例子的帮助下讨论这些。为此,让我们了解一下用Pandas进行规范化的步骤。

1.输入库(Pandas)。
2.导入/加载/创建数据。
3.使用该技术对该列进行规范化处理。

示例:

在这里,我们通过一些随机值创建数据,并在一列上应用一些规范化技术。

# importing packages
import pandas as pd
  
# create data
df = pd.DataFrame({'Column 1':[200,-4,90,13.9,5,
                               -90,20,300.7,30,-200,400],
                     
                   'Column 2':[20,30,23,45,19,38,
                               25,45,34,37,12]})
  
# view data
display(df)
Python

输出:

在Pandas中规范化一个列

数据集由两列组成,其中第1列没有被规范化,但第2列被规范化。因此,我们在第1列中应用规范化技术。

df['Column 1'].plot(kind = 'bar')
Python

输出:

在Pandas中规范化一个列

使用 最大的绝对比例

最大绝对缩放法通过将每个观察值除以其最大绝对值,在-1和1之间重新缩放每个特征。我们可以在Pandas中使用.max()和.abs()方法来应用最大绝对缩放,如下所示。

# copy the data
df_max_scaled = df.copy()
  
# apply normalization techniques on Column 1
column = 'Column 1'
df_max_scaled[column] = df_max_scaled[column] /df_max_scaled[column].abs().max()
  
# view normalized data
display(df_max_scaled)
Python

输出:

在Pandas中规范化一个列

使用最小-最大特征缩放

最小-最大方法(通常称为归一化)通过减去特征的最小值,然后除以该范围,将特征重新划分为[0,1]的硬性范围。我们可以在Pandas中使用.min()和.max()方法来应用最小-最大比例。

# copy the data
df_min_max_scaled = df.copy()
  
# apply normalization techniques by Column 1
column = 'Column 1'
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
display(df_min_max_scaled)
Python

输出 :

在Pandas中规范化一个列

让我们用这个情节检查一下。

df_min_max_scaled['Column 1'].plot(kind = 'bar')
Python

在Pandas中规范化一个列

使用Z-score方法

z-score方法(通常称为标准化)将信息转化为平均值为0、典型偏差为1的分布。每个标准化值的计算方法是减去相应特征的平均值,然后除以质量偏差。

# copy the data
df_z_scaled = df.copy()
  
# apply normalization technique to Column 1
column = 'Column 1'
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)
Python

输出 :

在Pandas中规范化一个列

让我们用这个情节检查一下。

df_z_scaled['Column 1'].plot(kind = 'bar')
Python

在Pandas中规范化一个列

使用sklearn

通过将每个特征缩放到一个给定的范围来转换特征。这个估计器对每个特征进行单独的缩放和翻译,使其在训练集上处于给定的范围内,例如,在0和1之间。这里,我们将使用minmax缩放器。

from sklearn.preprocessing import MinMaxScaler
import numpy as np
  
# copy the data
df_sklearn = df.copy()
  
# apply normalization techniques
column = 'Column 1'
df_sklearn[column] = MinMaxScaler().fit_transform(np.array(df_sklearn[column]).reshape(-1,1))
  
# view normalized data  
display(df_sklearn)
Python

输出 :

在Pandas中规范化一个列

让我们用这个情节检查一下。

df_sklearn['Column 1'].plot(kind = 'bar')
Python

在Pandas中规范化一个列

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册