def _op(self, df, verbose):
columns_to_encode = self._columns
if self._columns is None:
columns_to_encode = list(set(df.select_dtypes(
include=['object', 'category']).columns).difference(
self._exclude_columns))
if verbose:
columns_to_encode = tqdm.tqdm(columns_to_encode)
inter_df = df
for colname in columns_to_encode:
lbl_enc = sklearn.preprocessing.LabelEncoder()
source_col = df[colname]
loc = df.columns.get_loc(colname) + 1
new_name = colname + "_enc"
if self._drop:
inter_df = inter_df.drop(colname, axis=1)
new_name = colname
loc -= 1
inter_df = out_of_place_col_insert(
df=inter_df,
series=lbl_enc.fit_transform(source_col),
loc=loc,
column_name=new_name)
self.encoders[colname] = lbl_enc
return inter_df
评论列表
文章目录