Как нормализовать данные с помощью MinMaxScaler()?

Имею фрейм данных с разными типами данных как-то: int64, float64, object.

Пытаюсь нормализовать данные с помощью MinMaxScaler(), вот так:

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
names = train.columns
d = scaler.fit_transform(train)
scaled_df = pd.DataFrame(d, columns=names)
scaled_df.head()

Выдаёт ошибку:

could not convert string to float: '00000bfd7d50f01092811bc0c8d7b0d6fe7c3596'

Это признак 'ID' клиента. Как мне нормализовать только числовые данные с помощью MinMaxScaler?


Ответы (1 шт):

Автор решения: CrazyElf

Можно воспользоваться этим ответом, чтобы получить только данные из числовых колонок:

import numpy as np

df_numerics_only = df.select_dtypes(include=np.number)

Либо получить названия этих числовых колонок:

colnames_numerics_only = df.select_dtypes(include=np.number).columns.tolist()
→ Ссылка