JavaRush /Курси /Python SELF UA /Експорт відфільтрованих і оброблених даних у Excel

Експорт відфільтрованих і оброблених даних у Excel

Python SELF UA
Рівень 28 , Лекція 4
Відкрита

Уявіть собі, що ви — космічний дослідник, і дані — це ваша карта зоряного неба. Вона громіздка, заплутана і абсолютно необхідна. Після ретельної фільтрації та аналізу ці дані потребують впорядкування і збереження у легко читабельному форматі. І ось тут на сцену виходить наш герой — експорт даних у Excel. Він дозволяє вам ділитися своїми знахідками з колегами або готувати звіти для важливої наради. У світі, де дані — це нова нафта, навичка створення звітів буквально за кілька рядків коду може коштувати мільйон.

1. Основні аспекти експорту даних

Експорт даних у Excel — це не просто переведення з одного формату в інший. Це можливість налаштувати звіти так, щоб вони були зручні і зрозумілі. Як казав один мій знайомий програміст: "Пітон здатний на магію, але навіть Гаррі Поттеру потрібна паличка". У нашому випадку паличка — це метод to_excel з бібліотеки pandas.

Основи to_excel

Почнемо з простого прикладу експорту даних з DataFrame у Excel-файл. Припустимо, у нас є DataFrame з даними записів про учасників марафону:

Python

import pandas as pd

# Створюємо DataFrame
data = {
    'Ім`я': ['Анна', 'Борис', 'Віктор', 'Галина'],
    'Вік': [29, 34, 22, 28],
    'Місто': ['Москва', 'Санкт-Петербург', 'Казань', 'Новосибірськ'],
    'Час фінішу': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# Експортуємо DataFrame у Excel
df.to_excel('marathon_participants.xlsx', index=False)

У цьому прикладі ми створили простий DataFrame і експортували його у файл marathon_participants.xlsx. Зверніть увагу, що ми встановили параметр index=False, щоб не експортувати індекси DataFrame у Excel, якщо вони не потрібні.

Додавання формату і стилів

Переходимо до наступного рівня майстерності — додавання стилю. Бо хто сказав, що дані не можуть бути стильними? З бібліотекою pandas та openpyxl можна легко форматувати таблиці і додавати стилі.

Python

import pandas as pd
from openpyxl import Workbook

# Створюємо DataFrame
data = {
    'Ім`я': ['Анна', 'Борис', 'Віктор', 'Галина'],
    'Вік': [29, 34, 22, 28],
    'Місто': ['Москва', 'Санкт-Петербург', 'Казань', 'Новосибірськ'],
    'Час фінішу': ['03:15:30', '03:45:10', '03:25:45', '03:50:05']
}

df = pd.DataFrame(data)

# Записуємо в Excel з форматуванням
with pd.ExcelWriter('styled_marathon.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, index=False, sheet_name='Учасники')
    worksheet = writer.sheets['Учасники']
    for col in worksheet.columns:
        max_length = 0
        column = col[0].column_letter # отримуємо буквене позначення стовпця
        for cell in col:
            try:
                if len(str(cell.value)) > max_length:
                    max_length = len(cell.value)
            except:
                pass
        adjusted_width = (max_length + 2) * 1.2
        worksheet.column_dimensions[column].width = adjusted_width

У цьому прикладі ми не лише експортуємо дані, але й підганяємо ширину стовпців відповідно до вмісту, щоб вони виглядали акуратніше в Excel. Використовуємо openpyxl, щоб отримати доступ до аркуша і застосувати стилізацію.

Робота з кількома листами

Створення звітів з кількома листами може звучати як завдання для Супермена, але насправді це досить просто. Припустімо, ви хочете зберігати дані з різних річних змагань на окремих листах.

Python

import pandas as pd

# Дані для різних років
data_2022 = {
    'Ім`я': ['Дмитро', 'Олена'],
    'Вік': [30, 29],
    'Місто': ['Омськ', 'Владивосток'],
    'Час фінішу': ['03:20:05', '03:35:40']
}

data_2023 = {
    'Ім`я': ['Ігор', 'Катерина'],
    'Вік': [31, 27],
    'Місто': ['Челябінськ', 'Єкатеринбург'],
    'Час фінішу': ['03:29:10', '03:40:20']
}

df_2022 = pd.DataFrame(data_2022)
df_2023 = pd.DataFrame(data_2023)

# Записуємо дані на різні листи
with pd.ExcelWriter('marathon_data.xlsx') as writer:
    df_2022.to_excel(writer, sheet_name='2022', index=False)
    df_2023.to_excel(writer, sheet_name='2023', index=False)

Цей код створює файл marathon_data.xlsx з двома листами, на яких знаходяться дані за різні роки. Це дуже зручно для розділення даних за роками, проєктами або будь-якими іншими категоріями.

2. Завжди є що покращити

Спробуйте подумати над тим, як автоматизація експорту може бути вбудована у більш складні процеси вашого проєкту. Можливо, ви захочете додати автоматичне створення діаграм після експорту? Або інтегрувати звіти з вебінтерфейсом для зручнішого доступу?

У будь-якому випадку, експорт даних у Excel — це лише початок шляху до створення красивих та інформативних звітів, які зроблять вас зіркою аналітики на вашому робочому місці чи в навчанні!

Тепер у вас є інструменти для автоматизації експорту даних, і ви знаєте, як зробити ваші звіти в Excel більш читабельними і презентабельними. Тож вперед, і нехай ваші дані завжди працюють на вас!

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