Come normalizzare le colonne in un pandas dataframe


Spesso potresti voler normalizzare i valori dei dati di una o più colonne in un DataFrame panda.

Questo tutorial spiega due modi per farlo:

1. Normalizzazione Min-Max

  • Scopo: converte ciascun valore di dati in un valore compreso tra 0 e 1.
  • Formula: Nuovo valore = (valore – min) / (max – min)

2. Normalizzazione media

  • Scopo: scala i valori in modo tale che la media di tutti i valori sia 0 e std. dev. è 1.
  • Formula: Nuovo valore = (valore – media) / (deviazione standard)

Vediamo un esempio di come utilizzare ciascun metodo su un DataFrame panda.

Esempio 1: normalizzazione min-max

Supponiamo di avere i seguenti panda DataFrame:

 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

Possiamo utilizzare il seguente codice per applicare la normalizzazione min-max a ciascuna colonna del 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

Il valore massimo in ciascuna colonna è ora 1 e il valore minimo in ciascuna colonna è ora 0 , con tutti gli altri valori compresi tra 0 e 1.

Esempio 2: normalizzazione media

Supponiamo ancora una volta di avere i seguenti DataFrame panda:

 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

Possiamo utilizzare il seguente codice per applicare la normalizzazione media a ciascuna colonna nel 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

I valori in ciascuna colonna sono ora normalizzati in modo tale che la media dei valori in ciascuna colonna sia 0 e la deviazione standard dei valori in ciascuna colonna sia 1.

Se un particolare punto dati ha un valore normalizzato maggiore di 0, indica che il punto dati è maggiore della media della relativa colonna. Al contrario, un valore normalizzato inferiore a 0 indica che il punto dati è inferiore alla media della sua colonna.

Risorse addizionali

Panda: come raggruppare e aggregare su più colonne
Come filtrare un Pandas DataFrame su più condizioni
Come contare i valori mancanti in un Pandas DataFrame

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *