【发布时间】:2021-06-06 09:25:53
【问题描述】:
我正在训练一个机器学习模型来预测我所在国家/地区的房价。我不确定如何对我的数据应用一种热编码:所以我从这里复制了代码:One Hot Encoded Labels back to DataFrame。
它似乎运作良好,只是我的其他标签现在被 NaN 取代。 Before applying the One Hot Encoding,在我应用一种热编码后,this is the output
我使用的代码如下:
print(ds.head())
categorical_feature_mask = ds.dtypes==object
categorical_cols = ds.columns[categorical_feature_mask].tolist()
labeled_ds = ds[categorical_cols]
enc = OneHotEncoder()
enc.fit(labeled_ds)
onehotlabels = enc.transform(labeled_ds).toarray()
new_columns=list()
for col, values in zip(labeled_ds.columns, enc.categories_):
new_columns.extend([col + '_' + str(value) for value in values])
ds= pd.concat([ds, pd.DataFrame(onehotlabels, columns=new_columns)], axis='columns')
names = ['location', 'property_type']
ds.drop(names, axis=1, inplace=True)
ds.head()
关于可能导致此问题的任何想法?
【问题讨论】:
-
我猜是接触部分的问题。确保在连接两个数据框时具有相同的索引。所以使用
.reset_index
标签: python pandas machine-learning jupyter-lab