Гид по технологиям

Как загрузить данные Excel в Python с помощью Pandas

7 min read Python Обновлено 11 Apr 2026
Загрузить Excel в Python — Pandas быстро
Загрузить Excel в Python — Pandas быстро

Важно: в примерах предполагается установленный Python 3.x. Если вы никогда не работали с Python, начните с базового курса по Python и изучите простые примеры перед этим руководством.

Что такое Pandas

Pandas — это открытая библиотека Python для анализа и обработки табличных данных. Ключевое понятие: DataFrame — объект в виде таблицы с индексами, строками и колонками, похожий на таблицу Excel. DataFrame упрощает фильтрацию, агрегацию и преобразование данных в Python.

Короткое определение: DataFrame — табличная структура данных (строки × столбцы), полезная для анализа.

Зачем загружать Excel в Python

  • Повторяемая автоматизация преобразований и отчётов.
  • Возможность сложной фильтрации, объединения и статистики вне Excel.
  • Подготовка данных для машинного обучения и визуализации.

Установка Pandas и окружения

Примечание: Pandas требует Python 2.7 или 3.x, но рекомендуется Python 3.7+.

Варианты установки:

  • Через pip (наиболее распространённый способ):
>> pip install pandas
  • Через pip для NumPy (если ещё не установлен):
>> pip install numpy
  • Через Anaconda (рекомендуется для аналитиков): Pandas уже включён в дистрибутив Anaconda. Anaconda управляет зависимостями и окружениями.

  • Через pipenv/poetry: используйте менеджер зависимостей если вы хотите изолировать проект.

Пример для создания виртуального окружения и установки через pipenv:

>> pip install pipenv
>> pipenv --python 3.10
>> pipenv install pandas

Подготовка Excel-файла

Для примера используем рабочую книгу Cars.xlsx, сохранённую на рабочем столе:

/Users/grant/Desktop/Cars.xlsx

Изображение примера таблицы:

Таблица Excel с данными о марках, моделях, цветах и годах автомобилей

Что важно проверить перед импортом:

  • Есть ли заголовок (имена столбцов) в первой строке? Если нет — нужно указать header=None и задать имена колонок вручную.
  • Есть ли пустые строки/столбцы вокруг таблицы? Их лучше очистить.
  • Нужны ли специфические типы (даты, числа)? Можно задать аргумент dtype или parse_dates.
  • Если файл содержит несколько листов, определите, какой лист нужен (по имени или индексу).

Совет: сохраняйте файл в .xlsx. Для устаревших .xls или бинарных форматов могут потребоваться дополнительные движки.

Пишем скрипт: базовый пример

Создайте файл Script.py и импортируйте Pandas:

import pandas as pd
from pandas import ExcelFile

Сохраните путь к файлу в переменной:

Cars_Path = '/Users/grant/Desktop/Cars.xlsx'

Прочитайте файл в DataFrame:

DF = pd.read_excel(Cars_Path)
print(DF)

Запустите скрипт из терминала:

Пример запуска Python-скрипта в терминале

После выполнения вы увидите DataFrame в терминале:

Пример вывода DataFrame в терминале с индексом, заголовками и строками

Типичные параметры pd.read_excel и полезные опции

pandas.read_excel отвечает за чтение содержимого Excel и имеет много полезных аргументов. Ниже — шпаргалка (cheat sheet).

Основные параметры:

  • io — путь к файлу, объект буфера или URL.
  • sheet_name — имя листа, индекс (int), список листов или None для всех листов. По умолчанию 0 (первый лист).
  • header — строка(и) с заголовками (по умолчанию 0). Если заголовка нет — header=None.
  • names — список имён колонок, если вы хотите переопределить заголовки.
  • index_col — колонка(ы) для индекса.
  • usecols — какие колонки читать (словарь, список, диапазон строк/столбцов или строка Excel, например “A:C”).
  • dtype — словарь типов колонок, например {“Year”: int}.
  • parse_dates — колонки, которые нужно распознать как даты.
  • na_values — дополнительные строки, которые следует считать NaN.
  • engine — движок для чтения: ‘openpyxl’, ‘xlrd’ (устарел для xlsx), ‘odf’, ‘pyxlsb’. Обычно Pandas сам подберёт.

Примеры:

Чтение конкретного листа по имени:

DF = pd.read_excel(Cars_Path, sheet_name='Sheet1')

Чтение нескольких листов (вернёт словарь DataFrame):

sheets = pd.read_excel(Cars_Path, sheet_name=['Sheet1', 'Sheet2'])
# sheets['Sheet1'] — DataFrame для листа Sheet1

Чтение без автоматического индекса (убираем индексный столбец):

DF = pd.read_excel(Cars_Path, index_col=None)

Если у вас в таблице нет заголовка и вы хотите задать свои имена колонок:

DF = pd.read_excel(Cars_Path, header=None, names=['Make', 'Model', 'Color', 'Year'])

Чтение только колонок A и C (в Excel обозначении):

DF = pd.read_excel(Cars_Path, usecols='A:C')
# или по именам колонок
DF = pd.read_excel(Cars_Path, usecols=['Make', 'Year'])

Задание типов и парсинг дат:

DF = pd.read_excel(Cars_Path, dtype={'Year': 'int64'}, parse_dates=['PurchaseDate'])

Чтение из URL (если файл доступен по HTTP/HTTPS):

DF = pd.read_excel('https://example.com/data/Cars.xlsx')

Сохранение DataFrame обратно в Excel и другие форматы

После обработки вы можете сохранить результат:

DF.to_excel('/Users/grant/Desktop/Cars_processed.xlsx', index=False)
DF.to_csv('/Users/grant/Desktop/Cars.csv', index=False)

Частые ошибки и как их исправить

  1. Ошибка с движком (Engine error): Pandas может попросить установить openpyxl или xlrd. Решение: установить пакет, например pip install openpyxl.

  2. UnicodeDecodeError при чтении CSV: укажите encoding, например encoding=’utf-8’ или ‘cp1251’. Для Excel обычно не требуется.

  3. Неверные типы колонок: используйте dtype или преобразуйте после чтения с помощью astype.

  4. Проблемы с датами: укажите parse_dates и, при необходимости, dayfirst=True.

  5. Большой файл слишком медленный: читайте по частям (chunksize) или используйте специализированные инструменты.

Отладка: проверка содержимого и структуры

После чтения используйте стандартные Pandas-методы для осмотра:

DF.head()       # первые строки
DF.info()       # информация о колонках и типах
DF.describe()   # базовые статистики для числовых колонок
DF.columns      # список колонок
DF.shape        # (строки, колонки)

Альтернативы и для чего они годятся

  • openpyxl — работа с ячейками, форматированием, стилями (если нужен тонкий контроль над форматом Excel).
  • xlrd — чтение старых .xls (ограничения для .xlsx в новых версиях). Сейчас xlrd больше не поддерживает .xlsx.
  • xlwings — интеграция с запущенным Excel, полезно для взаимодействия с пользователем и автоматизации тонн Excel-скриптов.
  • pyxlsb — чтение бинарных .xlsb файлов.
  • CSV — иногда проще сохранить Excel в CSV и читать его, если нет нескольких листов или форматирования.

Когда Pandas подходит лучше: массовая обработка и анализ. Когда Pandas не подходит: если требуется работа с форматированием и стилями Excel.

Советы по производительности

  • Используйте usecols, чтобы читать только нужные столбцы.
  • Для очень больших файлов используйте chunking через pd.read_csv с chunksize; для Excel chunking нет прямого аргумента, поэтому конвертируйте в CSV, если возможно.
  • Указывайте dtype, чтобы избежать затрат на автоматическое определение типов.
  • Если файл повторно читается в нескольких скриптах, сохраняйте промежуточные результаты в Feather, Parquet или HDF5 для быстрого загрузки.

Безопасность и приватность

  • Не загружайте в скрипт пароли или приватные ключи. Обрабатывайте конфиденциальные данные в безопасной среде.
  • Если файл находится в общем доступе (облачное хранилище), проверьте права доступа перед публикацией результатов.
  • Удаляйте временные файлы после завершения обработки, если они содержат чувствительную информацию.

Совместимость и движки

Короткая матрица совместимости:

  • .xlsx: openpyxl (рекомендуется)
  • .xls: xlrd (старые форматы)
  • .xlsb: pyxlsb
  • .ods: odf

Если Pandas жалуется на «Engine» — обычно нужно установить соответствующую зависимость: pip install openpyxl или pip install pyxlsb.

Роль-базовые чек-листы

Для аналитика данных:

  • Убедиться, что заголовки корректны.
  • Прописать usecols и parse_dates.
  • Проверить пропуски и уникальные значения.

Для инженера данных:

  • Автоматизировать загрузку (cron, Airflow или CI).
  • Проверять контроль качества и тесты на целостность.
  • Сохранять вывод в сжатые форматы (Parquet).

Для начинающего:

  • Начать с простого pd.read_excel и изучить DF.head(), DF.info().
  • Экспериментально менять аргументы read_excel.

Критерии приёмки

  • Скрипт корректно загружает основной лист и возвращает DataFrame без ошибок.
  • Форматы дат и чисел распознаны корректно или явно приведены через dtype/parse_dates.
  • Файл сохраняется в нужный формат (если требуется) и доступен следующему шагу пайплайна.

Примеры расширенного использования

Чтение диапазона конкретных колонок и парсинг дат:

DF = pd.read_excel(Cars_Path, usecols=['Make','Model','Year','PurchaseDate'], parse_dates=['PurchaseDate'])

Чтение всех листов и объединение в один DataFrame:

sheets = pd.read_excel(Cars_Path, sheet_name=None)  # вернёт dict
combined = pd.concat(sheets.values(), ignore_index=True)

Обработка пропусков и базовая очистка:

DF = DF.dropna(subset=['Make','Model'])  # удалить строки без марки или модели
DF['Year'] = DF['Year'].fillna(0).astype(int)

Мини-методология для проекта

  1. Подготовить файл Excel: очистить служебные строки, установить заголовок.
  2. Создать виртуальное окружение и установить зависимости.
  3. Написать скрипт с pd.read_excel и базовой валидацией (DF.info(), проверки на пустые значения).
  4. Добавить логирование и тесты (например, assert DF.shape[0] > 0).
  5. Прописать шаг сохранения в более быстром бинарном формате, если планируется повторное чтение.

Тестовые кейсы и приёмка

  • Ожидаемый результат: DataFrame содержит N строк и M колонок.
  • Тест: при чтении файла с заголовком DF.columns совпадают с ожидаемым списком колонок.
  • Тест: для столбца Year все значения являются целыми числами.

Короткая шпаргалка (cheat sheet)

  • Чтение файла: pd.read_excel(path)
  • Лист по имени: sheet_name=’Name’
  • Только колонки: usecols=[‘A’,’B’] или ‘A:C’
  • Без индекса: index_col=None
  • Сохранить: DF.to_excel(path, index=False)

Часто задаваемые вопросы

Как установить Pandas?

Установите через pip: pip install pandas или используйте Anaconda.

Что такое DataFrame?

DataFrame — табличная структура данных с индексами, строками и столбцами для анализа.

Как убрать индекс, который Pandas добавляет по умолчанию?

При записи в Excel используйте index=False или при чтении не указывайте index_col.

Короткое руководство по отладке

  1. Выполните DF.head() и DF.info().
  2. Если колонки не прочитались — проверьте header и names.
  3. При ошибке движка — установите openpyxl или соответствующий пакет.

Заключение

Pandas — удобный инструмент для переноса данных из Excel в среду программирования. С него удобно начинать автоматизацию отчётов, очистку данных и подготовку к анализу. Освоив базовые параметры read_excel и методы проверки содержимого, вы сможете быстро и надёжно переносить табличные данные в рабочие скрипты.

Image Credit: Rawpixel/ Depositphotos

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Выбор структуры данных: практическое руководство
Структуры данных

Выбор структуры данных: практическое руководство

Как полностью покинуть iCloud и экосистему Apple
Миграция

Как полностью покинуть iCloud и экосистему Apple

Отключить отслеживание Facebook — Off‑Facebook Activity
Приватность

Отключить отслеживание Facebook — Off‑Facebook Activity

Как публиковать несколько BeReal в один день
соцсети

Как публиковать несколько BeReal в один день

Партнёрские программы для блога — настройка и рост
Монетизация

Партнёрские программы для блога — настройка и рост

Как использовать криптовалюту через Apple Pay
Криптовалюта

Как использовать криптовалюту через Apple Pay