`df.column.cat.categories` с неизвестными категориями не поддерживается при одном горячем преобразовании кодировщика - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь преобразовать свои категориальные функции в dask dataframe в один горячий кодировщик.Мой фрейм данных полностью посвящен категориальным особенностям:

df.dtypes
a                category
b                category
c                category
Length: 3, dtype: object

Поэтому я подумал, что это так же просто, как вызвать экземпляр OneHotEncoder, как здесь:

from dask_ml.preprocessing import OneHotEncoder

enc = OneHotEncoder()
enc.fit_transform(df)

Но, похоже, это не таки он выдает эту ошибку:

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-6-f656d2d2eec8> in <module>
      2 
      3 enc = OneHotEncoder()
----> 4 enc.fit_transform(df_churn_train[columns_categorical])

dask_environment/lib/python3.6/site-packages/sklearn/preprocessing/_encoders.py in fit_transform(self, X, y)
    514                 self._categorical_features, copy=True)
    515         else:
--> 516             return self.fit(X).transform(X)
    517 
    518     def _legacy_transform(self, X):

dask_environment/lib/python3.6/site-packages/dask_ml/preprocessing/_encoders.py in fit(self, X, y)
    126 
    127         if isinstance(X, (pd.Series, pd.DataFrame)) or dask.is_dask_collection(X):
--> 128             self._fit(X, handle_unknown=self.handle_unknown)
    129         else:
    130             super(OneHotEncoder, self).fit(X, y=y)

dask_environment/lib/python3.6/site-packages/dask_ml/preprocessing/_encoders.py in _fit(self, X, handle_unknown)
    174                 for col in X.columns:
    175                     Xi = X[col]
--> 176                     cats = _encode(Xi, uniques=Xi.cat.categories)
    177                     self.categories_.append(cats)
    178                     self.dtypes_.append(Xi.dtype)

dask_environment/lib/python3.6/site-packages/dask/dataframe/categorical.py in categories(self)
    211                    "supported.  Please use `column.cat.as_known()` or "
    212                    "`df.categorize()` beforehand to ensure known categories")
--> 213             raise NotImplementedError(msg)
    214         return self._delegate_property(self._series._meta, 'cat', 'categories')
    215 

NotImplementedError: `df.column.cat.categories` with unknown categories is not supported.  Please use `column.cat.as_known()` or `df.categorize()` beforehand to ensure known categories

Я думаю, что я не могу вызвать cat accesor с методом as_known, потому что это только для Series, а не для DataFrames.Поэтому я попытался вызвать .categorized () к моему объекту df, но всегда получаю эту ошибку:

KilledWorker: ("('assign-astype-fillna-get-categories-chunk-getitem-pandas_read_text-read-block-from-delayed-xxxxxxxxxx', 30)", 'tcp://x.x.x.x:x')

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...