Выбор ответа Junior Чтение и запись данных спрашивают часто обновлено

Целые числа стали float после чтения

Вопрос

Колонка qty содержит целые числа и пару пустых ячеек. После read_csv значения выглядят как 1.0, 2.0, NaN. Почему?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пустые ячейки стали NaN, а он бывает только во float; решение Int64. Классический int64 не умеет хранить пропуск, поэтому pandas повышает тип до float64.

Варианты ответа

  1. pandas всегда читает числа из CSV как float64, даже если пропусков нет
  2. Пустые ячейки стали NaN, а он бывает только во float; решение Int64правильный ответ
  3. Это ошибка разделителя: точка с запятой склеила колонки в одну
  4. CSV хранит числа как float, и .0 появляется ещё при записи файла

Разбор

Классический int64 не умеет хранить пропуск, поэтому pandas повышает тип до float64. Nullable-тип Int64 (с большой буквы) хранит целые и <NA>. Колонка без пропусков читалась бы как int64, разделитель и формат CSV тут ни при чём.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме