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

Einen Kommentar hinzufügen

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