CodeGym /Kursy /Python SELF PL /Zapis danych do pliku Excel z użyciem biblioteki pandas

Zapis danych do pliku Excel z użyciem biblioteki pandas

Python SELF PL
Poziom 27 , Lekcja 3
Dostępny

Cześć, kumple programiści! Mam nadzieję, że wszystko u Was w porządku, a jeśli nie, to mam nadzieję, że ten wykład poprawi Wam dzień. Dzisiaj nauczymy się zapisywać dane do pliku Excel za pomocą przyjaznej i sympatycznej biblioteki pandas. Tak, tej właśnie, o której wszyscy słyszeliśmy. Ten wykład to ważny krok na drodze do automatyzacji wszystkiego, od pisania raportów po domową księgowość. Jeśli kiedykolwiek marzyliście o tym, żeby zostać guru automatyzacji tabel biurowych (a kto nie?), to jesteście na właściwej drodze.

1. Podstawy zapisywania danych do Excela z użyciem pandas

Załóżmy, że mamy DataFrame pełen liczb i tekstu, i chcemy to cudowne dzieło zamienić na plik Excel. Jak to zrobić z pandas? Bardzo prosto! W pandas jest świetna metoda to_excel, która rozwiąże wszystkie nasze problemy związane z zapisaniem danych.

Jak to działa?

Aby zapisać DataFrame do pliku Excel, używamy metody to_excel. Funkcja ta pozwala nam wskazać nazwę pliku, do którego chcemy zapisać dane, a także, na przykład, ustawić nazwę arkusza, na który zapiszemy dane. Spójrzmy na mały przykład:

Python

import pandas as pd

# Stwórzmy mały DataFrame
data = {
    'Owoce': ['Jabłko', 'Banan', 'Wiśnia'],
    'Ilość': [10, 5, 2]
}
df = pd.DataFrame(data)

# Zapisujemy DataFrame do pliku Excel
df.to_excel('fruits.xlsx', sheet_name='Ulubione owoce', index=False)

print("Dane pomyślnie zapisane do pliku 'fruits.xlsx'")
    

Trochę więcej o parametrach

  • Nazwa pliku: Wskazaliśmy 'fruits.xlsx'. Nie zapomnijcie dodać rozszerzenia '.xlsx', w przeciwnym wypadku otrzymacie plik, którego Excel nie zrozumie.
  • sheet_name: Tutaj wskazaliśmy 'Ulubione owoce'. To nazwa arkusza, na który zostaną zapisane dane.
  • index: Domyślnie pandas zapisuje indeksy DataFrame jako pierwszą kolumnę. Podając index=False, uniknęliśmy tego.

2. Praca z wieloma arkuszami

A co z zapisem danych do kilku arkuszy w jednym pliku Excel? Im więcej danych, tym więcej zabawy! Poniżej znajdziecie przykład, jak to zrobić.

Użyjemy pandas.ExcelWriter, co daje nam możliwość bardziej elastycznej pracy z plikiem.

Python

# Tworzenie dwóch DataFrame
data1 = {'Owoce': ['Jabłko', 'Pomarańcza'], 'Ilość': [5, 7]}
data2 = {'Warzywa': ['Marchewka', 'Kapusta'], 'Ilość': [3, 4]}

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

# Tworzenie pliku Excel z kilkoma arkuszami
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Owoce', index=False)
    df2.to_excel(writer, sheet_name='Warzywa', index=False)

print("Dane pomyślnie zapisane do pliku 'produce.xlsx' na różne arkusze.")
    

Po co to może być potrzebne?

Praca z wieloma arkuszami jest przydatna, gdy dane są logicznie podzielone na kategorie, takie jak raporty za różne miesiące, różne rodzaje produktów i tak dalej. Excel staje się uniwersalnym pojemnikiem, umożliwiającym trzymanie wszystkich danych w jednym pliku, ale podzielonych na arkusze.

3. Zadanie praktyczne

Teraz czas na małe wyzwanie. Stworzycie nowy plik Excel, zawierający dane o sprzedaży książek w księgarni. Będziecie mieć dwa arkusze: jeden dla sprzedaży książek w styczniu, a drugi — w lutym. Oto trochę danych, żeby było Wam łatwiej zacząć:

  • Styczeń: książka "Python dla wszystkich" (sprzedaż: 50), "Sekrety JavaScript" (sprzedaż: 30).
  • Luty: książka "Python dla wszystkich" (sprzedaż: 70), "Sekrety JavaScript" (sprzedaż: 40).

Spróbujcie samodzielnie zrealizować to zadanie, a potem zwróćcie uwagę na poniższy przykład, jeśli będziecie potrzebować pomocy.

Python

# Przykład rozwiązania zadania

# Dane za styczeń
january_data = {'Książka': ['Python dla wszystkich', 'Sekrety JavaScript'], 'Sprzedaż': [50, 30]}
january_df = pd.DataFrame(january_data)

# Dane za luty
february_data = {'Książka': ['Python dla wszystkich', 'Sekrety JavaScript'], 'Sprzedaż': [70, 40]}
february_df = pd.DataFrame(february_data)

# Tworzenie pliku Excel z danymi za dwa miesiące
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='Styczeń', index=False)
    february_df.to_excel(writer, sheet_name='Luty', index=False)

print("Dane pomyślnie zapisane do pliku 'book_sales.xlsx'.")
    

Sprawdźcie plik book_sales.xlsx, otwórzcie go i zobaczcie utworzone arkusze!

4. Omówienie rozwiązań i optymalizacja

Jak zauważyliście, proces zapisywania danych do Excela za pomocą pandas jest całkiem prosty. Jednakże jest kilka rzeczy, na które warto zwrócić uwagę:

  • Optymalizacja użycia pamięci: Jeśli macie ogromne DataFrame, pomyślcie o podzieleniu danych na części i zapisaniu ich kolejno.
  • Formatowanie: Można dodać formatowanie, na przykład style dla nagłówków tabel. Wymaga to użycia dodatkowej biblioteki openpyxl i jej metod.
  • Wielokrotne zapisy: Jeśli planujecie często zapisywać dane do tego samego pliku, rozważcie możliwość użycia mode='a' w ExcelWriter, aby dodawać nowe dane do istniejących.

Kilka przykładów na poprawę Waszej przyszłej pracy

W przyszłości, kiedy staniecie się królem (hmm... albo królową?) automatyzacji, będziecie musieli umieć znajdować i naprawiać problemy. Na przykład, jeśli Wasza firma zdecyduje się zbierać raporty za każdy dzień miesiąca, możecie użyć pandas i ExcelWriter do automatyzacji tego procesu. Może warto zautomatyzować sprawdzanie dni wolnych i świąt, aby unikać prowadzenia rejestru w te dni.

Więc nie bójcie się eksperymentować i optymalizować Waszej pracy! Python z pandas to dokładnie to, co Wam w tym pomoże.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION