У меня есть набор данных, который требует кодирования метки.Я использую кодировщик этикеток sklearn для того же.
Вот воспроизводимый код проблемы:
import pandas as pd
from sklearn.preprocessing import LabelEncoder
data11 = pd.DataFrame({'Transaction_Type': ['Mortgage', 'Credit reporting', 'Consumer Loan', 'Mortgage'],
'Complaint_reason': ['Incorrect Info', 'False Statement', 'Using a Debit Card', 'Payoff process'],
'Company_response': ['Response1', 'Response2', 'Response3', 'Response1'],
'Consumer_disputes': ['Yes', 'No', 'No', 'Yes'],
'Complaint_Status': ['Processing','Closed', 'Awaiting Response', 'Closed']
})
le = LabelEncoder()
data11['Transaction_Type'] = le.fit_transform(data11['Transaction_Type'])
data11['Complaint_reason'] = le.transform(data11['Complaint_reason'])
data11['Company_response'] = le.fit_transform(data11['Company_response'])
data11['Consumer_disputes'] = le.transform(data11['Consumer_disputes'])
data11['Complaint_Status'] = le.transform(data11['Complaint_Status'])
Желаемый результат должен быть примерно таким:
({'Transaction_Type': ['1', '2', '3', '1'],
'Complaint_reason': ['1', '2', '3', '4'],
'Company_response': ['1', '2', '3', '1'],
'Consumer_disputes': ['1', '2', '2', '1'],
'Complaint_Status': ['1','2', '3', '2']
})
Проблема в том, что когда я пытаюсь кодировать столбцы: «Transaction_Type» и «Company_response» кодируются успешно, а столбцы «Complaint_reason», «Consumer_disputes» и «Complaint_Status» выдают ошибки.
Для 'Complaint_reason':
File "C:/Users/Ashu/untitled0.py", line 26, in <module>
data11['Complaint_reason'] = le.transform(data11['Complaint_reason'])
ValueError: y contains new labels: ['APR or interest rate' 'Account opening, closing, or management'
'Account terms and changes' ...
"Was approved for a loan, but didn't receive the money"
'Written notification about debt' 'Wrong amount charged or received']
и аналогично для 'Consumer_disputes':
File "<ipython-input-117-9625bd78b740>", line 1, in <module>
data11['Consumer_disputes'] = le.transform(data11['Consumer_disputes'].astype(str))
ValueError: y contains new labels: ['No' 'Yes']
и аналогично для 'Complaint_Status':
File "<ipython-input-119-5cd289c72e45>", line 1, in <module>
data11['Complaint_Status'] = le.transform(data11['Complaint_Status'])
ValueError: y contains new labels: ['Closed' 'Closed with explanation' 'Closed with monetary relief'
'Closed with non-monetary relief' 'Untimely response']
Это все категориальные переменные с фиксированными входами в форме предложений.Ниже приведено изображение среза данных:
Кодировка метки категориальных данных
Есть несколько вопросов по SO, но ни на один не удалось успешно ответить.