无法使用category_encoders的fit_transform对我的数据进行序数编码

时间:2019-06-18 18:41:46

标签: python pandas machine-learning categorical-data ordinal

我正在尝试将py -m pip install matplotlib的{​​{1}}转换为data的其中一列。
我尝试看到的documentation是:

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)有类似的错误。
我做错了什么以及如何解决这个问题。我仔细检查了我的专栏的类名,并重写了整个代码,似乎没有任何帮助。还是有其他替代方法可以做到这一点。
请不要将我的问题标记为重复。

2 个答案:

答案 0 :(得分:1)

文档不正确。 mapping的语法现在有所不同。看到这里:https://github.com/scikit-learn-contrib/categorical-encoding/issues/193

答案 1 :(得分:0)

我建议您使用OrdinalEncoder中的sklearn.preprocessing。我在做fit_transform的{​​{1}}时也遇到了同样的问题。因此,this post清除了我所有的想法。

编辑1: 这是我所做的(我将其保存以备重用):

OrdinalEncoder