def transform(self, X: pd.DataFrame, y=None) -> pd.DataFrame:
is_dask = isinstance(X, dd.DataFrame)
if is_dask:
X = X.categorize()
X = X.copy() if hasattr(X, 'copy') else X
categories = self.cat_cols_
for k in categories:
cat = (categories.get(k, None)
if hasattr(categories, 'get')
else None)
ordered = self.ordered.get(k, False)
# can't use Categorical constructor since dask compat
if not is_dask:
X[k] = pd.Categorical(X[k])
if cat:
X[k] = X[k].cat.set_categories(cat)
if ordered:
X[k] = X[k].cat.as_ordered()
return X
评论列表
文章目录