Я пытаюсь преобразовать OrdinalEncoder
из category_encoders
в один из столбцов моих данных .
документация я пробовал просмотреть:
import category_encoders as ce
# here i'm defining mapping for OrdinalEncoder
property_ordinal_mapping_1 = [{"col":"property_type", "mapping": [('Apartment', 1),('House', 2),('Condominium', 3),
('Townhouse', 4),('Loft', 5),('Other', 6),
('Guesthouse', 7),('Bed & Breakfast', 8),
('Bungalow', 9),('Villa', 10),('Dorm', 11),
('Guest suite', 12),('Camper/RV', 13),
('Timeshare', 14),('Cabin', 15),('In-law', 16),
('Hostel', 17),('Boutique hotel', 18),('Boat', 19),
('Serviced apartment', 20),('Tent', 21),('Castle', 22),
('Vacation home', 23),('Yurt', 24),('Hut', 25),
('Treehouse', 26),('Chalet', 27),('Earth House', 28),
('Tipi', 29),('Train', 30),('Cave', 31),
('Casa particular', 32),('Parking Space', 33),
('Lighthouse', 34),('Island', 35)
]
},
]
# preparing the OrdinalEncoder for fitting and transforming
property_encoder_1 = ce.OrdinalEncoder(mapping = property_ordinal_mapping_1, return_df = True, cols=["property_type"])
проблема, которая возникает, когда я пытаюсь fit_transfom
:
df_train = property_encoder_1.fit_transform(air_cat_2)
ошибка:
TypeError Traceback (most recent call last)
<ipython-input-96-9cea1713182c> in <module>()
----> 1 df_train = property_encoder_1.fit_transform(air_cat_2)
/usr/local/lib/python3.6/dist-packages/sklearn/base.py in fit_transform(self, X, y, **fit_params)
551 if y is None:
552 # fit method of arity 1 (unsupervised transformation)
--> 553 return self.fit(X, **fit_params).transform(X)
554 else:
555 # fit method of arity 2 (supervised transformation)
/usr/local/lib/python3.6/dist-packages/category_encoders/ordinal.py in fit(self, X, y, **kwargs)
139 cols=self.cols,
140 handle_unknown=self.handle_unknown,
--> 141 handle_missing=self.handle_missing
142 )
143 self.mapping = categories
/usr/local/lib/python3.6/dist-packages/category_encoders/ordinal.py in ordinal_encoding(X_in, mapping, cols, handle_unknown, handle_missing)
288 for switch in mapping:
289 column = switch.get('col')
--> 290 X[column] = X[column].map(switch['mapping'])
291
292 try:
/usr/local/lib/python3.6/dist-packages/pandas/core/series.py in map(self, arg, na_action)
3380 """
3381 new_values = super(Series, self)._map_values(
-> 3382 arg, na_action=na_action)
3383 return self._constructor(new_values,
3384 index=self.index).__finalize__(self)
/usr/local/lib/python3.6/dist-packages/pandas/core/base.py in _map_values(self, mapper, na_action)
1216
1217 # mapper is a function
-> 1218 new_values = map_f(values, mapper)
1219
1220 return new_values
pandas/_libs/lib.pyx in pandas._libs.lib.map_infer()
TypeError: 'list' object is not callable
sklearn.preprocessing.OrdinalEncoder
была похожая ошибка.
что я делаю не так и как мне это решить. Я дважды проверил имена классов моей колонки и переписал весь код, и ничто не помогло; Или есть другой способ сделать это?
Пожалуйста, не отмечайте мой вопрос как дубликат.