Получение списка листов Excel файла с помощью Pandas

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы получить список названий листов Excel-файла через Pandas, воспользуйтесь следующим кодом:

Python
Скопировать код
import pandas as pd

xl = pd.ExcelFile('your_file.xlsx')
sheet_names = xl.sheet_names
print(sheet_names)

Существует и более сжатый вариант:

Python
Скопировать код
sheet_names = pd.read_excel('your_file.xlsx', sheet_name=None).keys()
print(sheet_names)

В обоих случаях переменная sheet_names содержит список названий листов Excel-файла.

Кинга Идем в IT: пошаговый план для смены профессии

Загрузка листов Excel в DataFrame из pandas

Если вам нужно загрузить несколько листов в один DataFrame, используйте понятие словарного включения в pandas:

Python
Скопировать код
xl_file = pd.ExcelFile('your_file.xlsx')
data_frames = {sheet: xl_file.parse(sheet) for sheet in xl_file.sheet_names}

Здесь data_frames — это словарь, в котором ключами являются имена листов Excel, а значениями — соответствующие DataFrame с их содержимым.

Работа с большими Excel-файлами – метод "Быстро и Яростно"

Когда речь идет о больших Excel-файлах, эффективнее работать напрямую с XML-структурой файла. Так можно получить имена листов, не загружая файл целиком. Вот, как это можно сделать с использованием модулей ZipFile и BeautifulSoup:

Python
Скопировать код
from zipfile import ZipFile
from bs4 import BeautifulSoup

with ZipFile('your_file.xlsx', 'r') as z:
    with z.open('xl/workbook.xml') as f:
        soup = BeautifulSoup(f.read(), 'xml')
        sheets = [sheet.get('name') for sheet in soup.find_all('sheet')]
        
print(sheets)

Для оптимизации обработки XML используйте модуль lxml.

Визуализация

Можно представить Excel-файл как книгу со множеством глав:

Markdown
Скопировать код
📗 Книга Excel: 
- Глава 1 📄
- Глава 2 📄
- Глава 3 📄

Код для извлечения списка глав:

Python
Скопировать код
import pandas as pd
book = pd.ExcelFile('your_file.xlsx')
chapters = book.sheet_names

Это аналог просмотра содержания:

Markdown
Скопировать код
Содержание 📜: [Глава 1, Глава 2, Глава 3]

Скажем, это быстрый осмотр перед детальным анализом!

Динамическое взаимодействие с листами Excel

Выбор в руках пользователя!

Предоставьте пользователям возможность динамически выбирать лист, благодаря интерактивным инструментам Python. Через GUI или CLI, вот оба варианта:

Python
Скопировать код
# GUI-магия с помощью ipywidgets для Jupyter Notebook
from ipywidgets import Dropdown

dropdown = Dropdown(options=xl.sheet_names)
display(dropdown)

# Действия на основе выбранного листа
chosen_sheet = xl_file.parse(dropdown.value)

Для предпочтителей CLI:

Python
Скопировать код
chosen_sheet_name = input("Введите название листа: ")  # Пользователь, ваш выбор важен!
chosen_sheet_df = xl.parse(chosen_sheet_name)  # Ваши желания исполняются!

Первое впечатление – залог успеха!

Хотите быстро ознакомиться с данными? Загрузите только несколько первых строк:

Python
Скопировать код
first_few_rows = pd.read_excel('your_file.xlsx', sheet_name='Sheet1', nrows=5)  # Знакомство с данными!

Сокровища больше не спрятаны!

Скрытые листы могут стать настоящим открытием! Откройте их, используя XML-структуру с помощью ZipFile.

Путешествие в прошлое с устаревшими форматами Excel

Не ограничивайтесь старыми версиями Excel. Для работы с ними примените xlrd:

Python
Скопировать код
import xlrd

book = xlrd.open_workbook("your_file.xls")
print(book.sheet_names())  # Названия листов доступны с легкостью

Однако если вам потребуются файлы форматов .xlsx или .xlsm, выбирайте библиотеку openpyxl.

Полезные материалы

  1. pandas.ExcelFile — документация pandas 2.2.0 — подробное описание класса ExcelFile.
  2. pandas.read_excel — документация pandas 2.2.0 — всё об функции read_excel.
  3. xlrd — документация xlrd 2.0.1 — справочник по xlrd для работы со старыми форматами Excel.
  4. openpyxl 3.1.2 документация — руководство для работы с файлами .xlsx и .xlsm.
  5. Создание Excel-файлов с помощью Python и XlsxWriter — XlsxWriter — инструкции по созданию Excel-файлов с XlsxWriter.
  6. Что нового в 1.4.0 (22 января 2022) — документация pandas 2.2.0 — актуальные новости о Pandas.
  7. pandas · PyPI — страница проекта pandas на Python Package Index.