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

Ведущие нули после read_csv

Вопрос

В CSV колонка zip содержит индексы вида 010000. После pd.read_csv там 10000. Как исправить?

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

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

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

Коротко

Правильный ответ: Передать dtype={"zip": str} (или "string"). pandas распознал колонку как число, и ноль впереди потерялся уже при чтении.

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

  1. Передать dtype={"zip": str} (или "string")правильный ответ
  2. Добавить parse_dates=["zip"] при чтении файла
  3. После чтения сделать df["zip"].astype(str)
  4. Указать decimal="," и thousands=" " при чтении

Разбор

pandas распознал колонку как число, и ноль впереди потерялся уже при чтении. Нужно сразу читать её строкой через dtype. astype(str) после чтения вернёт "10000", нули не восстановятся (можно добить zfill, но это костыль). parse_dates и decimal к задаче не относятся.

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

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

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