Как нормализовать столбцы в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *