Normalizar una columna en Pandas

En este artículo, aprenderemos cómo normalizar una columna en Pandas. Analicemos primero algunos conceptos:

  • Pandas: Pandas es una biblioteca de código abierto construida sobre la biblioteca NumPy. Es un paquete de Python que proporciona varias estructuras de datos y operaciones para manipular datos numéricos y estadísticas. Es principalmente popular para importar y analizar datos mucho más fácilmente. Pandas es rápido y de alto rendimiento y productivo para los usuarios.
  • Normalización de datos: la normalización de datos también podría ser una práctica típica en el aprendizaje automático que consiste en transformar columnas numéricas a una escala estándar. En el aprendizaje automático, algunos valores de características difieren de otros varias veces. Las características con valores más altos dominarán el proceso de aprendizaje.

Pasos necesarios

Aquí, aplicaremos algunas técnicas para normalizar los valores de la columna y los discutiremos con la ayuda de ejemplos. Para esto, comprendamos los pasos necesarios para la normalización con Pandas.

  1. Biblioteca de importación (Pandas)
  2. Importar/Cargar/Crear datos.
  3. Utilice la técnica para normalizar la columna.

Ejemplos:

Aquí, creamos datos por algunos valores aleatorios y aplicamos algunas técnicas de normalización en una columna.

Python3

# 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)

Producción:

El conjunto de datos consta de dos columnas donde la Columna 1 no está normalizada pero la Columna 2 está normalizada. Así que aplicamos técnicas de normalización en la Columna 1.

Python3

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

Producción:

Usando la escala absoluta máxima:

La escala absoluta máxima vuelve a escalar cada característica entre -1 y 1 dividiendo cada observación por su valor absoluto máximo. Podemos aplicar el escalado absoluto máximo en Pandas usando los métodos .max() y .abs(), como se muestra a continuación.

Python3

# 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)

Producción:

Usando la función de escalado min-max:

El enfoque mínimo-máximo (a menudo llamado normalización) vuelve a escalar la característica a un rango duro y rápido de [0,1] al restar el valor mínimo de la característica y luego dividirlo por el rango. Podemos aplicar la escala min-max en Pandas usando los métodos .min() y .max().

Python3

# 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)

Producción :

Vamos a comprobar con esta parcela.

Python3

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

Usando el método de puntuación z:

El método de puntuación z (a menudo llamado estandarización) transforma la información en distribución con una media de 0 y una desviación típica de 1. Cada valor estandarizado se calcula restando la media de la característica correspondiente y luego dividiéndola por la desviación de calidad.

Python3

# 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)

Producción :

Vamos a comprobar con esta parcela.

Python3

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

Usando sklearn:

Transforme las funciones escalando cada función a un rango determinado. Este estimador escala y traduce cada característica individualmente de modo que esté en el rango dado en el conjunto de entrenamiento, por ejemplo, entre cero y uno. Aquí, usaremos el escalador minmax.

Python3

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)

Producción :

Comprobemos con esta trama:

Python3

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

Publicación traducida automáticamente

Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *