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