Hoe kolommen in een pandas dataframe te normaliseren


Vaak wil je misschien de datawaarden van een of meer kolommen in een pandas DataFrame normaliseren .

In deze zelfstudie worden twee manieren uitgelegd om dit te doen:

1. Min-Max-normalisatie

  • Doel: Converteert elke gegevenswaarde naar een waarde tussen 0 en 1.
  • Formule: Nieuwe waarde = (waarde – min) / (max – min)

2. Gemiddelde normalisatie

  • Doel: Schaalt waarden zodanig dat het gemiddelde van alle waarden 0 en std is. ontwikkelaar is 1.
  • Formule: Nieuwe waarde = (waarde – gemiddelde) / (standaardafwijking)

Laten we een voorbeeld bekijken van hoe u elke methode op een Panda DataFrame kunt gebruiken.

Voorbeeld 1: min-max-normalisatie

Stel dat we de volgende panda’s DataFrame hebben:

 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

We kunnen de volgende code gebruiken om min-max-normalisatie toe te passen op elke kolom van het 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

De maximale waarde in elke kolom is nu 1 en de minimale waarde in elke kolom is nu 0 , met alle andere waarden tussen 0 en 1.

Voorbeeld 2: gemiddelde normalisatie

Laten we opnieuw aannemen dat we de volgende panda’s DataFrame hebben:

 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

We kunnen de volgende code gebruiken om gemiddelde normalisatie toe te passen op elke kolom in het 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

De waarden in elke kolom zijn nu zodanig genormaliseerd dat het gemiddelde van de waarden in elke kolom 0 is en de standaardafwijking van de waarden in elke kolom 1 is.

Als een bepaald gegevenspunt een genormaliseerde waarde groter dan 0 heeft, geeft dit aan dat het gegevenspunt groter is dan het gemiddelde van de bijbehorende kolom. Omgekeerd geeft een genormaliseerde waarde kleiner dan 0 aan dat het gegevenspunt onder het gemiddelde van de kolom ligt.

Aanvullende bronnen

Panda’s: hoe te groeperen en aggregeren over meerdere kolommen
Hoe u een Pandas DataFrame op meerdere voorwaarden kunt filteren
Hoe ontbrekende waarden in een Pandas DataFrame te tellen

Einen Kommentar hinzufügen

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