#python #pandas
#python #pandas
Вопрос:
Я новичок в области машинного обучения. Я использовал метод get_dummies для преобразования категориальных объектов в числовые. Но я обнаружил эту ошибку!
KeyError Traceback (most recent call last)
~anaconda3libsite-packagespandascoreindexesbase.py in get_loc(self, key, method, tolerance)
2645 try:
-> 2646 return self._engine.get_loc(key)
2647 except KeyError:
pandas_libsindex.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine._get_loc_duplicates()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine._maybe_get_bool_indexer()
KeyError: 'Make'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-49-1192137dc95f> in <module>
17
18 #oneHot encodding in Transmssion
---> 19 dummy4= pd.get_dummies(df['Make'])
20 df= pd.concat([df, dummy4], axis=1)
21 df= df.drop('Transmission', axis=1)
~anaconda3libsite-packagespandascoreframe.py in __getitem__(self, key)
2798 if self.columns.nlevels > 1:
2799 return self._getitem_multilevel(key)
-> 2800 indexer = self.columns.get_loc(key)
2801 if is_integer(indexer):
2802 indexer = [indexer]
~anaconda3libsite-packagespandascoreindexesbase.py in get_loc(self, key, method, tolerance)
2646 return self._engine.get_loc(key)
2647 except KeyError:
-> 2648 return self._engine.get_loc(self._maybe_cast_indexer(key))
2649 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
2650 if indexer.ndim > 1 or indexer.size > 1:
pandas_libsindex.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine._get_loc_duplicates()
pandas_libsindex.pyx in pandas._libs.index.IndexEngine._maybe_get_bool_indexer()
KeyError: 'Make'
я использовал этот код
#oneHot encodding in make
dummy1= pd.get_dummies(df['Make'])
df= pd.concat([df, dummy1], axis=1)
df= df.drop('Make', axis=1)
#oneHot encodding in Model
dummy2= pd.get_dummies(df['Model'])
df= pd.concat([df, dummy2], axis=1)
df= df.drop('Model', axis=1)
#oneHot encodding in Vehicle-Class
dummy3= pd.get_dummies(df['Vehicle-Class'])
df= pd.concat([df, dummy3], axis=1)
df= df.drop('Vehicle-Class', axis=1)
#oneHot encodding in Transmssion
dummy4= pd.get_dummies(df['Transmission'])
df= pd.concat([df, dummy4], axis=1)
df= df.drop('Transmission', axis=1)
#oneHot encodding in Fuel-Type
dummy5= pd.get_dummies(df['Fuel-Type'])
df= pd.concat([df, dummy5], axis=1)
df= df.drop('Fuel-Type', axis=1)
для последней кодировки ‘Fuel-type’ это было сделано правильно. но для других это не сработало.
это ссылка для моего набора данных
Ответ №1:
Я проверил ваш код. Это дает вам правильный вывод.
Причина вышеупомянутой ошибки в том, что вы, возможно, запустили этот код во второй раз в том же фрейме данных. Поскольку вы уже удалили столбец ‘Make’ из фрейма данных в первый раз, он говорит, что во фрейме данных нет столбца.
Перезапустите и запустите код с самого начала. 🙂 🙂