В учебном CSV три строки данных: ID 001, 002 и 003, метки групп и часы. Для этого файла заранее заданы UTF-8, разделитель полей «;» и десятичная запятая. Разберём, как прочитать его в pandas с текстовым ID и сохранить различие между нулём и пустым значением. Все данные вымышлены.
Полный текст учебного файла ниже. Для повторения примера сохраните эти строки в UTF-8 под именем data.csv; первая строка — заголовок, ещё три — данные.
id;группа;часы
001;А;2,5
002;Б;0,0
003;А;
В этом файле «;» разделяет поля, а запятая внутри 2,5 и 0,0 служит десятичным знаком. Последняя строка 003;А; содержит пустое третье поле «часы». Это отличается от известного нулевого значения 0,0 у ID 002. Причина отсутствия часов у 003 в учебном наборе не задана.
Настройки pandas
В Python код такой:
import pandas as pd
df = pd.read_csv(
'data.csv',
sep=';', # разделитель полей
decimal=',', # десятичный знак — запятая
dtype={'id': str}, # id читаем как текст
encoding='utf-8'
)
После чтения получим:
| id | группа | часы |
|---|---|---|
| 001 | А | 2.5 |
| 002 | Б | 0.0 |
| 003 | А | NaN |

В таблице три поля исходного файла: id, группа и часы. Среди трёх значений часов два известны и одно пропущено. Ведущие нули в id сохранены как часть текста.
После указанного чтения ID остаются строками 001, 002, 003, группы — А, Б, А. Часы распознаны как числа 2.5 и 0.0; отсутствующее значение представлено как NaN. Точка в показанном числовом выводе не означает, что исходный CSV был перезаписан. Ноль и пропуск различаются.
Если ID распознан как число, его числовое значение не хранит исходные ведущие нули. Для сохранения исходной строки задайте текстовый тип при чтении. После потери нулей не угадывайте длину ID по оставшемуся числу: возьмите исходный CSV, сравните значения и повторите импорт с текстовым типом. Формат отображения сам по себе не устанавливает, каким был исходный идентификатор.
Что проверить при импорте в Excel
Microsoft описывает прямое открытие CSV и импорт текстовых данных. При прямом открытии столбцы интерпретируются по текущим настройкам формата. Для контроля типов можно использовать доступный в вашей версии импорт «Из текста/CSV» либо мастер импорта текста. Мастер относится к legacy-функциям и может потребовать включения; названия и расположение элементов зависят от версии. Испытание этого файла в интерфейсе Excel здесь не проводилось.
Для показанного учебного формата перед подтверждением импорта сверьте настройки и предварительный просмотр:
- Разделитель полей — точка с запятой; предварительный просмотр показывает три поля.
- Кодировка соответствует UTF-8 учебного файла; кириллица читается как А, Б, А.
- Для id выбран текстовый тип до преобразования значений, чтобы сохранить строки с нулями.
- Для чисел учитывается десятичная запятая исходного файла; конкретный способ настройки зависит от выбранного инструмента импорта.
- После импорта сверены исходные значения и пустое поле часов. Отображение известного нуля может отличаться, поэтому проверяют значение, а не только число знаков после запятой.
После чтения данных правила обработки отсутствующих ответов нужно описать отдельно. Это разобрано в статье о пропусках в анкете и знаменателях расчёта. Смысл полей и выбранные коды удобно зафиксировать в кодировочной книге данных.
Чек-лист: что проверить перед импортом любого csv
| Настройка | Наш пример | Что делать для другого файла |
|---|---|---|
| Разделитель | ; | Посмотрите в исходнике: запятая, табуляция, точка с запятой? |
| Десятичный знак | , | Посмотрите на числа: 2,5 или 2.5? |
| Тип ID | str | Если ведущие нули входят в ID, импортируйте этот столбец как текст |
| Кодировка | utf-8 | Сверьте кодировку по документации источника и предпросмотр кириллицы; для учебного файла явно выбран UTF-8. |
| Пропуски | Пустое поле | Пустая ячейка — это 0 или отсутствие данных? |
Коротко
- Если ведущие нули входят в ID, импортируйте этот столбец как текст — и в pandas, и в мастере Excel.
- Для данного файла в pandas задан decimal=",". Для другого CSV сначала определите фактический десятичный знак и разделитель полей; настройки Excel сверяйте с его документацией и предпросмотром.
- Пропуск и ноль — разные вещи. Пустое поле не становится нулём само по себе.
- Сверили исходные три строки с результатом импорта — все на месте? Значит, настройки подобраны верно.
Если нужна консультация по подготовке собственного набора к анализу, можно обсудить статистическую обработку данных. Заранее уточните задачу, структуру файлов и объём консультации.