JavaRush /Курси /Python SELF UA /Запис даних в Excel-файл за допомогою бібліотеки pandas

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

Python SELF UA
Рівень 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 — це саме те, що допоможе вам у цьому.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ