April 10, 2022

Ловушка новичка при преобразовании типов в Pandas

Рассмотрим самый распространенный способ преобразования типа колонки датафрейма, результат работы которого оборачивается непредсказуемыми сюрпризами для новичка. В этом материале я это и продемонстрирую.

Пусть для примера мы работаем с таблицей:

Попробуем преобразовать вторую колонку к булеву типу с помощью метода astype и посмотрим, что произойдет:

Видите, что незаполненные значения автоматически преобразованы в True и False, при этом np.nan в True, None в False. Не каждый ожидает такого поведения.

Ещё один сюрприз - преобразование первой колонки к строчному виду опять же методом astype:

Теперь попробуем получить незаполненные значения в этой колонке и убедимся, что их нет:

А вот, как найти старые пропущенные значения (только как строки):

Примечательно, что np.nan отображается как строка NaN, а ищется как 'nan'.