So normalisieren sie spalten in einem pandas dataframe
Häufig möchten Sie möglicherweise die Datenwerte einer oder mehrerer Spalten in einem Pandas-DataFrame normalisieren .
In diesem Tutorial werden zwei Möglichkeiten erläutert, dies zu tun:
1. Min-Max-Normalisierung
- Zweck: Konvertiert jeden Datenwert in einen Wert zwischen 0 und 1.
- Formel: Neuer Wert = (Wert – Min) / (Max – Min)
2. Durchschnittliche Normalisierung
- Zweck: Skaliert Werte so, dass der Durchschnitt aller Werte 0 und Standard ist. Entwickler ist 1.
- Formel: Neuer Wert = (Wert – Durchschnitt) / (Standardabweichung)
Sehen wir uns ein Beispiel für die Verwendung der einzelnen Methoden in einem Pandas-DataFrame an.
Beispiel 1: Min-Max-Normalisierung
Angenommen, wir haben den folgenden Pandas-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
Wir können den folgenden Code verwenden, um die Min-Max-Normalisierung auf jede Spalte des DataFrame anzuwenden:
(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
Der Maximalwert in jeder Spalte ist jetzt 1 und der Minimalwert in jeder Spalte ist jetzt 0 , wobei alle anderen Werte zwischen 0 und 1 liegen.
Beispiel 2: Durchschnittsnormalisierung
Nehmen wir erneut an, dass wir den folgenden Pandas-DataFrame haben:
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
Wir können den folgenden Code verwenden, um eine durchschnittliche Normalisierung auf jede Spalte im DataFrame anzuwenden:
(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
Die Werte in jeder Spalte werden nun so normalisiert, dass der Mittelwert der Werte in jeder Spalte 0 und die Standardabweichung der Werte in jeder Spalte 1 beträgt.
Wenn ein bestimmter Datenpunkt einen normalisierten Wert größer als 0 hat, bedeutet dies, dass der Datenpunkt größer als der Durchschnitt seiner Spalte ist. Umgekehrt bedeutet ein normalisierter Wert kleiner als 0, dass der Datenpunkt unter dem Mittelwert seiner Spalte liegt.
Zusätzliche Ressourcen
Pandas: So gruppieren und aggregieren Sie über mehrere Spalten hinweg
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen
So zählen Sie fehlende Werte in einem Pandas DataFrame