So standardisieren sie daten in python: mit beispielen


Beim Standardisieren eines Datensatzes werden alle Werte im Datensatz so skaliert, dass der Mittelwert 0 und die Standardabweichung 1 beträgt.

Wir verwenden die folgende Formel, um Werte in einem Datensatz zu normalisieren:

x neu = (x ix ) / s

Gold:

  • x i : der i-te Wert des Datensatzes
  • x : Das Stichprobenmittel
  • s : die Standardabweichung der Stichprobe

Wir können die folgende Syntax verwenden, um alle Spalten in einem Pandas-DataFrame in Python schnell zu normalisieren:

 (df- df.mean ())/df. std ()

Die folgenden Beispiele zeigen, wie Sie diese Syntax in der Praxis anwenden können.

Beispiel 1: Standardisieren Sie alle DataFrame-Spalten

Der folgende Code zeigt, wie alle Spalten in einem Pandas-DataFrame standardisiert werden:

 import pandas as pd

#create data frame
df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29],
                   ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12],
                   ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]})

#view data frame
df

	y x1 x2 x3
0 8 5 11 2
1 12 7 8 2
2 15 7 10 3
3 14 9 6 2
4 19 12 6 5
5 23 9 5 5
6 25 9 9 7
7 29 4 12 9

#standardize the values in each column
df_new = (df- df.mean ())/df. std ()

#view new data frame
df_new

	        y x1 x2 x3
0 -1.418032 -1.078639 1.025393 -0.908151
1 -0.857822 -0.294174 -0.146485 -0.908151
2 -0.437664 -0.294174 0.634767 -0.525772
3 -0.577717 0.490290 -0.927736 -0.908151
4 0.122546 1.666987 -0.927736 0.238987
5 0.682756 0.490290 -1.318362 0.238987
6 0.962861 0.490290 0.244141 1.003746
7 1.523071 -1.470871 1.416019 1.768505

Wir können überprüfen, ob der Mittelwert und die Standardabweichung jeder Spalte gleich 0 bzw. 1 sind:

 #view mean of each column
df_new. mean ()

y 0.000000e+00
x1 2.775558e-17
x2 -4.163336e-17
x3 5.551115e-17
dtype:float64

#view standard deviation of each column
df_new. std ()

y 1.0
x1 1.0
x2 1.0
x3 1.0
dtype:float64

Beispiel 2: Normalisieren Sie bestimmte DataFrame-Spalten

Manchmal möchten Sie möglicherweise nur bestimmte Spalten in einem DataFrame normalisieren.

Beispielsweise möchten Sie bei vielen Algorithmen für maschinelles Lernen möglicherweise nur die Prädiktorvariablen standardisieren, bevor Sie ein bestimmtes Modell an die Daten anpassen.

Der folgende Code zeigt, wie bestimmte Spalten in einem Pandas-DataFrame standardisiert werden:

 import pandas as pd

#create data frame
df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29],
                   ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12],
                   ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]})

#view data frame
df

	y x1 x2 x3
0 8 5 11 2
1 12 7 8 2
2 15 7 10 3
3 14 9 6 2
4 19 12 6 5
5 23 9 5 5
6 25 9 9 7
7 29 4 12 9

#define predictor variable columns
df_x = df[[' x1 ', ' x2 ', ' x3 ']]

#standardize the values for each predictor variable
df[[' x1 ',' x2 ',' x3 ']] = (df_x- df_x.mean ())/df_x. std ()

#view new data frame
df

         y x1 x2 x3
0 8 -1.078639 1.025393 -0.908151
1 12 -0.294174 -0.146485 -0.908151
2 15 -0.294174 0.634767 -0.525772
3 14 0.490290 -0.927736 -0.908151
4 19 1.666987 -0.927736 0.238987
5 23 0.490290 -1.318362 0.238987
6 25 0.490290 0.244141 1.003746
7 29 -1.470871 1.416019 1.768505

Beachten Sie, dass die Spalte „y“ unverändert bleibt, die Spalten „x1“, „x2“ und „x3“ jedoch alle standardisiert sind.

Wir können überprüfen, ob der Mittelwert und die Standardabweichung jeder Spalte von Prädiktorvariablen gleich 0 bzw. 1 sind:

 #view mean of each predictor variable column
df[[' x1 ', ' x2 ', ' x3 ']]. mean ()

x1 2.775558e-17
x2 -4.163336e-17
x3 5.551115e-17
dtype:float64

#view standard deviation of each predictor variable column
df[[' x1 ', ' x2 ', ' x3 ']]. std ()

x1 1.0
x2 1.0
x3 1.0
dtype:float64

Zusätzliche Ressourcen

So normalisieren Sie Spalten in einem Pandas DataFrame
So entfernen Sie Ausreißer in Python
Standardisierung oder Normalisierung: Was ist der Unterschied?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert