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.
- Biblioteca de importación (Pandas)
- Importar/Cargar/Crear datos.
- 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