У меня есть тренировочный набор данных, и я строю некоторые модели машинного обучения. У меня нет доступа к тестовому комплекту, и я хочу разобраться с тем, что одна из категориальных характеристик в тесте не наблюдалась в поезде.
Вот игрушечный пример, иллюстрирующий, что я имею в виду:
У меня есть DataFrame, old
, вот так:
old = pd.DataFrame({"car":["Audi", "BMW", "Mazda"]})
Что выглядит так:
car
0 Audi
1 BMW
2 Mazda
Я теперь одно горячее кодирование, как это:
new = pd.get_dummies(old)
и вернитесь:
car_Audi car_BMW car_Mazda
0 1 0 0
1 0 1 0
2 0 0 1
Это все хорошо. Однако, если я столкнусь с строкой в тесте, которая выглядит следующим образом:
car
0 Mercedes
Я могу выполнить горячее кодирование, но в итоге получу столбец, которого у меня не было в тесте.
Есть ли способ в Пандах просто игнорировать значения в тесте, которых я не видел в поезде?
Таким образом, желаемый результат для моего ряда Mercedes будет:
car_Audi car_BMW car_Mazda
0 0 0 0
Спасибо!