Заполнение модой пропусков в столбцах с категориальными значениями
Прошу помощи! Есть условный датафрейм (q) с категориальными значениями в столбцах, в которых есть пропуски. Хочу заполнить пропуски модой, с созданием нового фрейма (w) однако код:
w = fillna(q.mode())
заполняет пропуски модой только в первой строке нового фрейма. Подскажите, пожалуйста, в чем ошибка?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
удивительно, что ваш код вообще что-то заполняет. ошибка ваша в том, что метод .mode() возвращает датафрейм, а при заполнении NaN датафреймом получается именно то, что получается у вас. поэтому нужно результат mode() перевести в словарь или серию для маппинга значений по столбцам, и уже ей заполнять:
df2 = df.fillna(df.mode().squeeze())
или
df2 = df.fillna(df.mode().iloc[0])
или
df2 = df.fillna(df.mode().to_dict("records")[0])