JavaRush /Курсы /Python SELF /Запись данных в Excel-файл с использованием библиотеки pa...

Запись данных в Excel-файл с использованием библиотеки pandas

Python SELF
27 уровень , 3 лекция
Открыта

Привет, друзья кодеры! Надеюсь, у вас всё хорошо, а если нет, надеюсь, эта лекция сделает ваш день чуточку лучше. Сегодня мы научимся записывать данные в Excel-файл с помощью милой и дружелюбной библиотеки pandas. Да, та самая, о которой мы все слышали. Эта лекция — важный шаг на пути к автоматизации всего и вся, от написания отчётов до домашней бухгалтерии. Если вы когда-нибудь мечтали стать гуру автоматизации офисных таблиц (а кто нет?), то вы на верном пути.

1. Основы записи данных в Excel с помощью pandas

Итак, представим, что у нас есть DataFrame, заполненный цифрами и текстом, и мы хотим это великолепие превратить в Excel-файл. Как мы это сделаем с pandas? Очень просто! У pandas есть чудесный метод to_excel, который решит все наши проблемы, связанные с сохранением данных.

Как всё это работает?

Для записи DataFrame в Excel-файл используем метод to_excel. Эта функция позволяет нам указать имя файла, в который хотим сохранить данные, а также, например, задать имя листа, на который мы будем записывать данные. Давайте рассмотрим небольшой пример:

Python

import pandas as pd

# Создадим небольшой DataFrame
data = {
    'Фрукты': ['Яблоко', 'Банан', 'Вишня'],
    'Количество': [10, 5, 2]
}
df = pd.DataFrame(data)

# Записываем DataFrame в Excel-файл
df.to_excel('fruits.xlsx', sheet_name='Любимые фрукты', index=False)

print("Данные успешно записаны в файл 'fruits.xlsx'")
    

Чуть больше о параметрах

  • Имя файла: Мы указали 'fruits.xlsx'. Не забывайте добавлять расширение '.xlsx', иначе вы получите файл, который Excel не поймёт.
  • sheet_name: Тут мы указали 'Любимые фрукты'. Это имя листа таблицы, на который будут записаны данные.
  • index: По умолчанию pandas записывает индексы DataFrame как первый столбец. Указав index=False, мы этого избежали.

2. Работа с несколькими листами

Как насчет записи данных на несколько листов в одном Excel-файле? Ведь чем больше данных, тем больше веселья! Ниже приведён пример, как это делается.

Мы будем использовать pandas.ExcelWriter, что дает нам возможность работать с файлом более гибко.

Python

# Создание двух DataFrame
data1 = {'Фрукты': ['Яблоко', 'Апельсин'], 'Количество': [5, 7]}
data2 = {'Овощи': ['Морковь', 'Капуста'], 'Количество': [3, 4]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Создание Excel-файла с несколькими листами
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Фрукты', index=False)
    df2.to_excel(writer, sheet_name='Овощи', index=False)

print("Данные успешно записаны в файл 'produce.xlsx' на разные листы.")
    

Зачем это может понадобиться?

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

3. Практическое задание

Сейчас настало время для небольшого вызова. Вы создадите новый Excel-файл, содержащий данные о продаже книг в магазине. У вас будет два листа: один для продаж книг в январе и другой — в феврале. Вот немного данных, чтобы вам было легче начать:

  • Январь: книга "Питон для всех" (продажи: 50), "Секреты JavaScript" (продажи: 30).
  • Февраль: книга "Питон для всех" (продажи: 70), "Секреты JavaScript" (продажи: 40).

Попробуйте самостоятельно реализовать это задание, а затем обратите внимание на пример ниже, если потребуется помощь.

Python

# Пример решения задачи

# Данные за январь
january_data = {'Книга': ['Питон для всех', 'Секреты JavaScript'], 'Продажи': [50, 30]}
january_df = pd.DataFrame(january_data)

# Данные за февраль
february_data = {'Книга': ['Питон для всех', 'Секреты JavaScript'], 'Продажи': [70, 40]}
february_df = pd.DataFrame(february_data)

# Создание Excel-файла с данными за два месяца
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='Январь', index=False)
    february_df.to_excel(writer, sheet_name='Февраль', index=False)

print("Данные успешно записаны в файл 'book_sales.xlsx'.")
    

Проверьте файл book_sales.xlsx, откройте его и полюбуйтесь созданными листами!

4. Обсуждение решений и оптимизация

Как вы могли заметить, процесс записи данных в Excel с помощью pandas довольно прост. Однако есть несколько вещей, на которые стоит обратить внимание:

  • Оптимизация использования памяти: Если у вас огромные DataFrame, подумайте о том, чтобы разделить данные на части и записать их последовательно.
  • Форматирование: Можно добавить форматирование, например, стили для шапок таблиц. Это требует использования дополнительной библиотеки openpyxl и её методов.
  • Множественные записи: Если планируете часто записывать данные в один и тот же файл, рассмотрите возможность использования mode='a' в ExcelWriter, чтобы добавлять новые данные к существующим.

Пара примеров решений для улучшения вашей будущей работы

В будущем, когда вы станете королём(ммм… или королевой?) автоматизации, вам нужно будет уметь находить и исправлять проблемы. Например, если ваша компания решит собирать отчеты за каждый день месяца, вы можете использовать pandas и ExcelWriter для автоматизации этого процесса. Возможно, стоит автоматизировать проверку выходных и праздничных дней, чтобы не вести учет в эти дни.

Так что, не бойтесь экспериментировать и оптимизировать вашу работу! Python с pandas — это именно то, что поможет вам в этом.

Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Олег Уровень 24
30 сентября 2025
В PyCharm есть плагин "ExcelReader"
Slevin Уровень 64
17 июля 2025
Подсказка к решению последней задачи в начале следующей лекции!