Чтение конкретных листов Excel с помощью Pandas в Python
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Примените pd.read_excel()
с использованием параметра sheet_name=None
, чтобы занести все листы файла Excel в структуру данных типа словарь.
import pandas as pd
# Вот они, все ваши листы!
data = pd.read_excel('file.xlsx', sheet_name=None)
Если вам необходимы определённые листы, укажите список их названий вместо None
.
# Загружаем только "Лист1" и "Лист2"
data = pd.read_excel('file.xlsx', sheet_name=['Лист1', 'Лист2'])
Преимущества использования pd.ExcelFile для больших файлов
Для работы с крупными файлами удобно обращаться к объекту pd.ExcelFile
, который считывает данные однократно и позволяет множество раз осуществлять доступ к листам.
xlsx = pd.ExcelFile('file.xlsx')
# Производим считывание данных первого листа
sheet1_df = xlsx.parse('Лист1')
# Имеем доступ к второму листу
sheet2_df = xlsx.parse('Лист2')
Такой подход значительно повышает производительность работы.
Работа с индексами листов
Если вы не припоминаете названий листов, но знаете их порядковые номера, воспользуйтесь числовыми индексами.
# Для получения данных с первого листа
sheet1_df = xlsx.parse(0)
Чтобы избежать ошибок, проверьте список всех листов:
# Выводим названия всех листов
print(xlsx.sheet_names)
Работа с большим объемом данных
При необходимости работать с обширными файлами, вы можете оптимизировать их загрузку:
# Загрузка только столбцов 'A', 'C', 'G'
df = pd.read_excel('file.xlsx', usecols=['A', 'C', 'G'])
# Или пропуск первых 20 строк
df = pd.read_excel('file.xlsx', skiprows=range(1, 20))
Визуализация
Воспринимайте файл Excel как книгу рецептов, где каждый лист представляет собой отдельный рецепт.
📔 = Книга Рецептов = Сборник Листов
| Рецепт (Лист) | Описание |
| --------------- | -------------------------- |
| 🧁 Капкейки | Рецепты ароматных капкейков|
| 🍪 Печенье | Секреты идеального печенья |
| 🍰 Чизкейк | Различные варианты чизкейков|
Как избрать необходимые рецепты (листы), используя pd.read_excel()
:
import pandas as pd
# Ищем рецепты капкейков и чизкейков
cupcakes_df = pd.read_excel('recipes.xlsx', sheet_name='Капкейки')
cheesecake_df = pd.read_excel('recipes.xlsx', sheet_name='Чизкейк')
И теперь у нас есть рецепты этих превосходных блюд.
Интеграция данных: объединение для покорения
Структурируйте свои данные, скомбинировав несколько листов с помощью pd.concat()
:
import pandas as pd
# Объединяем данные по капкейкам и чизкейкам
combined_df = pd.concat([cupcakes_df, cheesecake_df], ignore_index=True)
Для более сложного объединения примените функцию merge()
, чтобы установить связь между данными:
# Сопоставляем данные по общему столбцу 'common_column'
result_df = pd.merge(cupcakes_df, cheesecake_df, on='common_column', how='outer')
Продвинутое умение в работе с данными
Масштабные и сложные задачи требуют продвинутых решений:
xlsx = pd.ExcelFile('file.xlsx')
# Извлекаем все листы с вхождением слова '2021' в их названиях
dfs = {sheet_name: xlsx.parse(sheet_name)
for sheet_name in xlsx.sheet_names if '2021' in sheet_name}
Запомните индексы всех листов с использованием enumerate()
:
# Присваиваем данные каждого листа определённой переменной
for index, name in enumerate(xlsx.sheet_names):
vars()['df' + str(index)] = xlsx.parse(name)
Зелье от неприятностей и оптимизации
Не забывайте регулярно обновлять свой Pandas, чтобы использовать все возможности библиотеки:
pip install --upgrade pandas
Если вы сталкиваетесь с ограничением оперативной памяти, действуйте пошагово:
# Обрабатываем данные частями
chunk_size = 50000
chunks = pd.read_excel('file.xlsx', chunksize=chunk_size)
# Сохраняем данные или сразу же их объединяем
big_df = pd.concat([chunk for chunk in chunks], ignore_index=True)
Полезные материалы
- pandas.read_excel — документация pandas 2.2.0 — Официальная документация pandas.
- Объединение нескольких листов Excel в один DataFrame — статья с подробными примерами и объяснениями.
- Автоматизация рутинных задач с помощью Python — здесь вы сможете узнать, как Python помогает упростить ежедневные задачи.
- Чтение данных с нескольких листов Excel в разные DataFrame — обсуждения и решения на Stack Overflow.
- Создание файлов Excel с помощью Python и XlsxWriter — руководство по созданию сложных Excel-документов на Python.