Панды, превратить все данные кадра в уникальные категориальные значения - PullRequest
1 голос
/ 14 мая 2019

Я относительно новичок в Pandas и Python, и я пытаюсь выяснить, как превратить все содержимое (все поля являются строками) Pandas Dataframe в категориальное.

Все значения из строк истолбцы должны обрабатываться как большой уникальный набор данных, прежде чем превращать их в категориальные числа.

До сих пор мне удавалось написать следующий фрагмент кода

for col_name in X.columns:
    if(X[col_name].dtype == 'object'):
        X[col_name]= X[col_name].astype('category')
        X[col_name] = X[col_name].cat.codes

, который работает с даннымикадр X из нескольких столбцов.Он берет строки и превращает их в уникальные числа.

Что я не уверен в приведенном выше коде, так это то, что цикл for работает только для столбца, и я не уверен, являются ли назначенные коды уникальными для столбца иливесь фрейм данных (последнее - желаемое действие).

Не могли бы вы дать совет о том, как я могу превратить свой код в уникальные числа с учетом всех значений фрейма данных?

Iхотел бы заранее поблагодарить вас за вашу помощь.С уважением, Алекс

1 Ответ

1 голос
/ 14 мая 2019

Используйте DataFrame.stack с Series.unstack для установки MultiIndex Series на уникальные значения:

cols = df.select_dtypes('object').columns
df[cols] = df[cols].stack().astype('category').cat.codes.unstack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...