我有一个数据集,我想使用sklearn.preprocessing.OneHotEncoder进行独热编码。我的问题是编码后,结果的行数比原始数据集少(差5行)。这是我的代码:
one_hot_encoder = OneHotEncoder(handle_unknown='ignore', sparse=False)X_cat = pd.DataFrame( one_hot_encoder.fit_transform(X[categorical_vars]), columns=one_hot_encoder.get_feature_names(categorical_vars))
提前感谢任何建议。:)
回答:
我认为你得到的输出列较少是因为你有一些未知的分类特征。因为你将关键字’handle_unknown’设置为忽略,这些列被跳过了。
如果你能提供一些样本数据,我可以为你测试并给你更好的解释。否则,我建议你阅读这篇文章。它很好地解释了’handle_unknown’关键字的用途,以及为什么和何时使用它。