Como normalizar colunas em um dataframe do pandas
Muitas vezes você pode querer normalizar os valores de dados de uma ou mais colunas em um DataFrame do pandas.
Este tutorial explica duas maneiras de fazer isso:
1. Normalização Mín-Máx.
- Objetivo: Converte cada valor de dados em um valor entre 0 e 1.
- Fórmula: Novo valor = (valor – min) / (máx – min)
2. Normalização média
- Objetivo: Dimensiona valores de forma que a média de todos os valores seja 0 e padrão. dev. é 1.
- Fórmula: Novo valor = (valor – média) / (desvio padrão)
Vamos ver um exemplo de como usar cada método em um DataFrame do pandas.
Exemplo 1: normalização min-max
Suponha que temos o seguinte DataFrame do pandas:
import pandas as pd #createDataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'rebounds': [11, 8, 10, 6, 6]}) #view DataFrame print (df) points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6
Podemos usar o seguinte código para aplicar a normalização min-max a cada coluna do DataFrame:
(df-df. min ())/(df. max ()-df. min ()) points assists rebounds 0 1.000000 0.000000 1.0 1 0.000000 0.285714 0.4 2 0.230769 0.285714 0.8 3 0.153846 0.571429 0.0 4 0.538462 1.000000 0.0
O valor máximo em cada coluna agora é 1 e o valor mínimo em cada coluna agora é 0 , com todos os outros valores entre 0 e 1.
Exemplo 2: normalização média
Vamos supor novamente que temos o seguinte DataFrame do pandas:
import pandas as pd #createDataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'rebounds': [11, 8, 10, 6, 6]}) #view DataFrame print (df) points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6
Podemos usar o seguinte código para aplicar a normalização média a cada coluna do DataFrame:
(df- df.mean ())/df. std () points assists rebounds 0 1.554057 -1.133893 1.227881 1 -0.971286 -0.377964 -0.087706 2 -0.388514 -0.377964 0.789352 3 -0.582772 0.377964 -0.964764 4 0.388514 1.511858 -0.964764
Os valores em cada coluna agora são normalizados de forma que a média dos valores em cada coluna seja 0 e o desvio padrão dos valores em cada coluna seja 1.
Se um determinado ponto de dados tiver um valor normalizado maior que 0, isso indica que o ponto de dados é maior que a média de sua coluna. Por outro lado, um valor normalizado inferior a 0 indica que o ponto de dados está abaixo da média da sua coluna.
Recursos adicionais
Pandas: como agrupar e agregar em várias colunas
Como filtrar um DataFrame do Pandas em múltiplas condições
Como contar valores ausentes em um DataFrame do Pandas