У меня есть такой фрейм данных в python -
INSTRUMENT_TYPE_CD RISK_START_DT ... FIN_POS_IND PL_FINAL_IND
0 Physical Index 01-03-2017 00:00 ... 0 No
1 Fin Basis Swap 01-09-2018 00:00 ... 0 No
2 Physical Index 01-09-2017 00:00 ... 0 No
3 Physical Index 01-12-2016 00:00 ... 0 No
4 Fin Basis Swap 01-02-2018 00:00 ... 0 No
, как вы можете видеть, значения элементов в столбцах являются повторяющимися и обычно строковыми.Я хочу преобразовать этот фрейм данных в целочисленный кодированный фрейм данных, который отображает каждую уникальную строку в столбце в какое-то уникальное целое число / число.
До сих пор я придумал это (метод нормализации), но он не работает.
normalise(dataframe)
def normalise(dataframe):
for column in dataframe:
dataframe[column] = dataframe.apply(unique_code_mapper(dataframe[column]))
return dataframe
def unique_code_mapper(column):
unique_array = []
for val in column:
if val in unique_array:
column.loc[val] = unique_array.index(val)
else:
unique_array.append(val)
column.loc[val] = unique_array.index(val)
return column
Возвращает следующую ошибку:
TypeError: ("'Series' object is not callable", 'occurred at index INSTRUMENT_TYPE_CD')