Як нормалізувати стовпці в pandas dataframe


Часто вам може знадобитися нормалізувати значення даних одного або кількох стовпців у pandas DataFrame.

Цей підручник пояснює два способи зробити це:

1. Нормування Min-Max

  • Призначення: перетворює кожне значення даних на значення від 0 до 1.
  • Формула: Нове значення = (значення – min) / (max – min)

2. Середнє нормування

  • Призначення: масштабує значення таким чином, щоб середнє значення всіх значень дорівнювало 0 і станд. розробник дорівнює 1.
  • Формула: нове значення = (значення – середнє) / (стандартне відхилення)

Давайте розглянемо приклад використання кожного методу на pandas DataFrame.

Приклад 1: нормалізація min-max

Припустімо, що у нас є наступні 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

Ми можемо використати наступний код, щоб застосувати нормалізацію min-max до кожного стовпця 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

Максимальне значення в кожному стовпці тепер дорівнює 1 , а мінімальне значення в кожному стовпці тепер дорівнює 0 , а всі інші значення – між 0 і 1.

Приклад 2: середня нормалізація

Давайте ще раз припустимо, що у нас є наступні 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

Ми можемо використати наступний код, щоб застосувати середню нормалізацію до кожного стовпця в 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

Значення в кожному стовпці тепер нормалізовано таким чином, що середнє значення значень у кожному стовпці дорівнює 0, а стандартне відхилення значень у кожному стовпці дорівнює 1.

Якщо певна точка даних має нормалізоване значення більше за 0, це вказує на те, що ця точка даних більша за середнє значення свого стовпця. І навпаки, нормалізоване значення менше 0 вказує на те, що точка даних нижче середнього значення свого стовпця.

Додаткові ресурси

Pandas: як групувати та агрегувати в кількох стовпцях
Як відфільтрувати Pandas DataFrame за кількома умовами
Як підрахувати відсутні значення в Pandas DataFrame

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *