Получение списка листов Excel файла с помощью Pandas
Быстрый ответ
Чтобы получить список названий листов Excel-файла через Pandas, воспользуйтесь следующим кодом:
import pandas as pd
xl = pd.ExcelFile('your_file.xlsx')
sheet_names = xl.sheet_names
print(sheet_names)
Существует и более сжатый вариант:
sheet_names = pd.read_excel('your_file.xlsx', sheet_name=None).keys()
print(sheet_names)
В обоих случаях переменная sheet_names
содержит список названий листов Excel-файла.
Загрузка листов Excel в DataFrame из pandas
Если вам нужно загрузить несколько листов в один DataFrame, используйте понятие словарного включения в pandas:
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
:
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-файл как книгу со множеством глав:
📗 Книга Excel:
- Глава 1 📄
- Глава 2 📄
- Глава 3 📄
Код для извлечения списка глав:
import pandas as pd
book = pd.ExcelFile('your_file.xlsx')
chapters = book.sheet_names
Это аналог просмотра содержания:
Содержание 📜: [Глава 1, Глава 2, Глава 3]
Скажем, это быстрый осмотр перед детальным анализом!
Динамическое взаимодействие с листами Excel
Выбор в руках пользователя!
Предоставьте пользователям возможность динамически выбирать лист, благодаря интерактивным инструментам Python. Через GUI или CLI, вот оба варианта:
# GUI-магия с помощью ipywidgets для Jupyter Notebook
from ipywidgets import Dropdown
dropdown = Dropdown(options=xl.sheet_names)
display(dropdown)
# Действия на основе выбранного листа
chosen_sheet = xl_file.parse(dropdown.value)
Для предпочтителей CLI:
chosen_sheet_name = input("Введите название листа: ") # Пользователь, ваш выбор важен!
chosen_sheet_df = xl.parse(chosen_sheet_name) # Ваши желания исполняются!
Первое впечатление – залог успеха!
Хотите быстро ознакомиться с данными? Загрузите только несколько первых строк:
first_few_rows = pd.read_excel('your_file.xlsx', sheet_name='Sheet1', nrows=5) # Знакомство с данными!
Сокровища больше не спрятаны!
Скрытые листы могут стать настоящим открытием! Откройте их, используя XML-структуру с помощью ZipFile
.
Путешествие в прошлое с устаревшими форматами Excel
Не ограничивайтесь старыми версиями Excel. Для работы с ними примените xlrd
:
import xlrd
book = xlrd.open_workbook("your_file.xls")
print(book.sheet_names()) # Названия листов доступны с легкостью
Однако если вам потребуются файлы форматов .xlsx
или .xlsm
, выбирайте библиотеку openpyxl
.
Полезные материалы
- pandas.ExcelFile — документация pandas 2.2.0 — подробное описание класса
ExcelFile
. - pandas.read_excel — документация pandas 2.2.0 — всё об функции
read_excel
. - xlrd — документация xlrd 2.0.1 — справочник по
xlrd
для работы со старыми форматами Excel. - openpyxl 3.1.2 документация — руководство для работы с файлами
.xlsx
и.xlsm
. - Создание Excel-файлов с помощью Python и XlsxWriter — XlsxWriter — инструкции по созданию Excel-файлов с
XlsxWriter
. - Что нового в 1.4.0 (22 января 2022) — документация pandas 2.2.0 — актуальные новости о Pandas.
- pandas · PyPI — страница проекта
pandas
на Python Package Index.