Як нормалізувати стовпці в 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