Как нормализовать столбцы в dataframe pandas
Часто вам может потребоваться нормализовать значения данных одного или нескольких столбцов в DataFrame pandas.
В этом руководстве описаны два способа сделать это:
1. Нормализация Min-Max
- Цель: Преобразует каждое значение данных в значение от 0 до 1.
- Формула: Новое значение = (значение – мин) / (макс – мин)
2. Средняя нормализация
- Цель: Масштабирует значения таким образом, чтобы среднее значение всех значений было равно 0 и стандартному. разработчик это 1.
- Формула: Новое значение = (значение – среднее) / (стандартное отклонение)
Давайте посмотрим пример использования каждого метода в DataFrame pandas.
Пример 1: нормализация min-max
Предположим, у нас есть следующий DataFrame pandas:
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: нормализация среднего значения
Давайте снова предположим, что у нас есть следующий DataFrame pandas:
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: как группировать и агрегировать по нескольким столбцам
Как фильтровать DataFrame Pandas по нескольким условиям
Как подсчитать пропущенные значения в DataFrame Pandas