При нормализации данных в python, получаю эту ошибку: Ошибка оценивающего фактора: TypeError: индексы списка должны быть целыми или кусочками, а не str - PullRequest
0 голосов
/ 01 марта 2019

Мои данные:

absent_data.head()

Мои данные

До того, как все заработало, это мой код:

cnames = ['Transportation expense', 'Distance from Residence to Work',
   'Service time', 'Age', 'Work load Average/day ', 'Hit target',
   'Son', 'Pet', 'Weight','Body mass index',
   'Absenteeism time in hours']

#Nomalization
for i in cnames:
    print(i)
    absent_data[i] = (absent_data[i] - min(absent_data[i]))/(max(absent_data[i]) - min(absent_data[i]))

СейчасПолучение этой ошибки:

Отслеживание TypeError (последний вызов последнего) в () 2 для i в именах: 3 print (i) ----> 4 absent_data [i] = (absent_data [i] - min (absent_data [i])) / (max (absent_data [i]) - min (absent_data [i]))

TypeError: объект 'numpy.float64' не вызывается

Раньше тоже было плавать.

1 Ответ

0 голосов
/ 01 марта 2019

Полагаю, вы присваиваете значение с плавающей запятой для min или max, а функция min или max отменяется.Перезапустите свой ноутбук и удалите переопределяющую часть, тогда вы получите ожидаемый результат.

В противном случае, просто используйте sklearn.preprocessing.MinMaxScaler вместо того, чтобы реализовать его самостоятельно.

Нормализовать столбцы пандфрейм данных

...