Python: Pandas
2026-02-26 19:47 Diff

Библиотека Pandas разрабатывалась для работы с табличными данными. Популярными типами файлов для их хранения являются:

  • csv — текстовый формат, в котором значения в столбцах отделены друг от друга разделителем, часто запятой
  • xlsx или xls — форматы файлов электронных таблиц Microsoft Excel

Для чтения и записи таблиц в указанные форматы в Pandas существуют специальные методы. О них пойдет речь в этом уроке.

Чтение данных

Начнем работу с продажами в сети из четырех магазинов за одну неделю, которые хранятся в формате csv с запятой в качестве разделителя. Воспользуемся методом read_csv():

При чтении данных метод не знает, что считать за индекс в данных, поэтому расставляет индексы самостоятельно. Это возрастающая последовательность целых чисел, которая начинается с нуля. В нашем примере явным индексом является первый столбец — Weekday. Дополним метод параметром index_col с явным указанием номера столбца, который хранит индексы:

У разделителя в данных формата csv есть важное значение при чтении. По умолчанию это запятая. Попытка считать данные с разделителем в виде точки с запятой приведет к некорректному чтению. В примере ниже в результате получается пустой DataFrame, в котором индексами стали данные в строках — не то, что хотелось получить:

Для корректного чтения в данном случае достаточно воспользоваться параметром sep:

Иногда описание данных может предшествовать началу самих табличных данных. В примере ниже файл начинается со строк:

Попытка прочитать данный файл повлечет ошибку:

Чтобы пропустить ряд строк с описанием, нужно воспользоваться параметром skiprows. Его значение — это количество опускаемых из рассмотрения первых строк в файле:

Запись данных

После чтения и трансформации данных результаты могут быть сохранены в файловую систему. Для этого в Pandas есть ряд специальных методов. Для рассматриваемых типов данных это to_csv() и to_excel():

В примере выше метод to_csv() позволяет сохранить DataFrame в изначальном виде. Если в качестве индекса сохранить значения, которые присвоены Pandas по умолчанию, то это может мешать дальнейшему чтению и обработке. Также такие индексы не несут важной информации.

У нас есть такие данные:

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

В команде разработки можно проговорить, что будет использоваться в качестве разделителя в csv-файле. Также это может быть продиктовано совместимостью с другими частями программного продукта. Чтобы задать разделитель, нужно использовать параметр sep:

Метод to_excel() позволяет сохранять табличные данные в формат MS Excel. Параметризация аналогична методу to_csv(). Меняется только название метода и расширение файла с .csv на .xlsx:

В некоторых случаях сохранение названий столбцов также можно отключить. Это может потребоваться, когда нужно сохранить значения в ячейках таблицы, или когда названия столбцов не несут дополнительной информации, и не предполагается их использование. Для этого достаточно задать параметр header значением False:

Большие таблицы текстовых данных занимают большой объем. Чтобы уменьшить его, можно создавать архивы методами Pandas. Для этого нужно определить метод сжатия и названия файла в архиве, при этом указать их в виде словаря в параметре compression:

Выводы

Данные для долгосрочного хранения размещают в виде файлов на жестких дисках. В данном уроке методами библиотеки Pandas выполнялись операции чтения и записи csv и xlsx файлов — наиболее популярных форматов хранения табличных данных.

Данные форматы позволяют хранить таблицы в структурированной форме, но при этом данная форма может сильно варьироваться:

  • Могут использоваться различные варианты разделителей значений в столбцах
  • Строки описания данных могут появляться в шапке таблицы
  • Индексы могут храниться не в привычном крайнем левом столбце

В уроке на практических примерах показано, как действовать в таких ситуациях. Конфигурацией параметров методов мы научились:

  • Пропускать первые строки в таблице
  • Явно указывать столбец с индексом при чтении
  • Игнорировать названия столбцов и индексы при записи таблиц
  • Архивировать таблицы для сохранения дискового пространства