Lambda函数中的LabelEncoder

时间:2018-07-20 02:02:42

标签: python pandas

我正在使用爱荷华州的Ames住房数据,我想在lambda函数中使用LabelEncoder在我的分类功能中对字符串值进行标签编码,同时跳过NaN值(这样我就可以估算出它们后来)。这是我到目前为止的内容:

train['Fireplace Qu'].apply(lambda x: LabelEncoder(x).fit_transform if type(x) != np.float else x)

但是会引发此错误:

TypeError: object() takes no parameters

任何帮助将不胜感激-试图找到一种估算归类数据的方法。

1 个答案:

答案 0 :(得分:0)

让我们使用factorize

pd.Series(pd.factorize(df.group)[0]).replace(-1,np.nan)
Out[141]: 
0    NaN
1    NaN
2    0.0
3    0.0
4    NaN
5    NaN
6    NaN
7    NaN
8    1.0
dtype: float64

df.loc[df.group.notnull(),'group']=df.group.astype('category').cat.codes

数据输入

  group
0   NaN
1   NaN
2     a
3     a
4   NaN
5   NaN
6   NaN
7   NaN
8     b