Q:

LabelEncoder within Lambda function

I'm working with the Ames, Iowa housing data, and I'd like to use a LabelEncoder within a lambda function to label encode my string values in my categorical features while skipping over the NaN values (so I can impute them later).  This is what I have so far:
train['Fireplace Qu'].apply(lambda x: LabelEncoder(x).fit_transform if type(x) != np.float else x)
But it throws this error: 
TypeError: object() takes no parameters
Any help would be greatly appreciated - trying to figure out a way to impute categorical data.

A:

Let us using 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

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

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

