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:
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ącindex=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.
# 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.
# 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'
wExcelWriter
, 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.
GO TO FULL VERSION