df.fillna: выдает ошибку из-за замены значения для NaN, отсутствующего в категориальных атрибутах

#python #pandas #nan

#python #pandas #nan

Вопрос:

 df.fillna('unknown',inplace=True)
  

У меня есть dataframe df, в котором некоторые атрибуты являются категориальными, а некоторые — объектами. Используя приведенное выше выражение, я пытаюсь заполнить недостающие значения в любом из этих столбцов «неизвестным». Но при этом я получаю сообщение об ошибке, в котором говорится, что ‘unknown’ отсутствует в категориях столбцов категориальных данных.

Как я могу это сделать?

Ответ №1:

Используйте DataFrame.select_dtypes и перебирайте каждый категориальный столбец и добавляйте ‘unknown’ в качестве категории, используя add_categories метод в .cat средстве доступа.

 for col in df.select_dtypes('category'):
    df[col].cat.add_categories('unknown', inplace=True)

df.fillna('unknown',inplace=True)