【发布时间】:2020-12-19 01:05:24
【问题描述】:
我有一个带有空格作为缺失值的数据框,因此我使用正则表达式将它们替换为 NaN 值。我遇到的问题是当我想使用序数编码来替换分类值时。到目前为止,我的代码如下:
x=pd.DataFrame(np.array([30,"lawyer","France",
25,"clerk","Italy",
22," ","Germany",
40,"salesman","EEUU",
34,"lawyer"," ",
50,"salesman","France"]
).reshape(6,3))
x.columns=["age","job","country"]
x = x.replace(r'^\s*$', np.nan, regex=True)
oe=preprocessing.OrdinalEncoder()
df.job=oe.fit_transform(df["job"].values.reshape(-1,1))
我收到以下错误:
Input contains NaN
我希望将作业列替换为以下数字:[1,2,-1,3,1,3]。
【问题讨论】:
-
从 sklearn v1.0 开始,它将不再抱怨输入包含 NaN,因为来自scikit-learn.org/1.0/modules/…的“OrdinalEncoder 还将传递 np.nan 指示的缺失值”