**Praca z danymi w Pythonie

W dzisiejszej lekcji zanurzymy się w świecie Pandas, potężnej biblioteki Pythona do manipulacji i analizy danych. Nauczycie się, jak wczytywać, badać, przekształcać i analizować dane w formacie DataFrame, co jest kluczowe w inżynierii danych i ETL.

Learning Objectives

  • Zrozumieć strukturę danych DataFrame i Series w Pandas.
  • Nauczyć się wczytywać dane z różnych źródeł (np. CSV) do DataFrame.
  • Opanować podstawowe operacje na danych, takie jak filtrowanie, sortowanie i agregacja.
  • Rozwinąć umiejętność badania i wstępnej analizy danych za pomocą Pandas.

Lesson Content

Wprowadzenie do Pandas i DataFrame

Pandas to biblioteka Pythona, która ułatwia pracę z danymi w postaci tablicowej. Centralną strukturą danych jest DataFrame, co można porównać do tabeli w arkuszu kalkulacyjnym. Innym ważnym elementem jest Series, czyli kolumna w DataFrame.

Importowanie Pandas:

import pandas as pd

Tworzenie DataFrame z danych:

data = {'Nazwa': ['Kowalski', 'Nowak', 'Wiśniewski'],
        'Wiek': [30, 25, 40],
        'Miasto': ['Warszawa', 'Kraków', 'Gdańsk']}
df = pd.DataFrame(data)
print(df)

To stworzy DataFrame z trzema kolumnami: 'Nazwa', 'Wiek' i 'Miasto' oraz trzema wierszami.

Wczytywanie danych i podstawowe operacje

Pandas umożliwia wczytywanie danych z wielu różnych formatów, takich jak CSV, Excel, SQL i wiele innych.

Wczytywanie danych z pliku CSV:

df = pd.read_csv('dane.csv')  # Zakładając, że mamy plik dane.csv

Podgląd danych:
* df.head() - wyświetla pierwsze 5 wierszy.
* df.tail() - wyświetla ostatnie 5 wierszy.
* df.sample(5) - wyświetla 5 losowych wierszy.

Informacje o danych:
* df.info() - wyświetla informacje o typach danych i brakujących wartościach.
* df.describe() - generuje statystyki opisowe (np. średnia, odchylenie standardowe) dla kolumn numerycznych.

Przykładowe operacje:
* df['Wiek'] - wyświetla kolumnę 'Wiek' (Series).
* df[['Nazwa', 'Miasto']] - wyświetla kolumny 'Nazwa' i 'Miasto' (DataFrame).
* df[df['Wiek'] > 30] - filtrowanie: wyświetla wiersze, w których wiek jest większy niż 30.
* df.sort_values(by='Wiek') - sortowanie po kolumnie 'Wiek'.

Przekształcanie i agregacja danych

Pandas oferuje wiele narzędzi do przekształcania danych, takich jak dodawanie nowych kolumn, usuwanie kolumn, zmiana typów danych, oraz agregacji danych.

Przykłady przekształceń:
* df['Nowy Wiek'] = df['Wiek'] + 1 - dodanie nowej kolumny.
* df.drop('Nowy Wiek', axis=1) - usunięcie kolumny.
* df['Wiek'].astype(float) - zmiana typu danych na float.

Agregacja danych:
* df['Wiek'].mean() - oblicza średnią wieku.
* df['Wiek'].max() - oblicza maksymalny wiek.
* df.groupby('Miasto')['Wiek'].mean() - grupowanie po 'Miasto' i obliczanie średniej wieku dla każdego miasta.

Deep Dive

Explore advanced insights, examples, and bonus exercises to deepen understanding.

Rozszerzone Materiały: Pandas w Inżynierii Danych i ETL - Dzień 3

Witamy ponownie w świecie Pandas! Dziś zagłębimy się w bardziej zaawansowane aspekty tej potężnej biblioteki, rozwijając wiedzę zdobytą w dzisiejszej lekcji. Przyjrzymy się głębiej metodom transformacji danych i ich zastosowaniu w realnych scenariuszach ETL.

Deep Dive: Zaawansowane Transformacje Danych w Pandas

Poza podstawowymi operacjami, Pandas oferuje bogaty zestaw funkcji do transformacji danych, niezbędnych w procesach ETL. Przyjrzyjmy się kilku kluczowym obszarom:

  • Apply i Map: Używanie apply() do stosowania funkcji na kolumnach lub wierszach DataFrame. map() do przekształcania wartości w kolumnach na podstawie słownika lub funkcji. Przykładowo, zmiana nazwy kolumn z "Produkt" na "Nazwa_Produktu" za pomocą df.rename(columns={'Produkt': 'Nazwa_Produktu'}).
  • GroupBy i Agregacja: Zaawansowane grupowanie danych za pomocą groupby() i agregacja z wykorzystaniem funkcji takich jak sum(), mean(), count(). Przykład: zliczanie sprzedaży pogrupowanych po kategoriach produktów. Pamiętajmy o pivot_table(), która pozwala na bardziej złożone agregacje i reorganizację danych.
  • Operacje Łączenia (Join) i Scalania (Merge): Łączenie danych z wielu DataFrame'ów. Używamy merge() do łączenia na podstawie kolumn wspólnych i concat() do łączenia danych wzdłuż osi. Wyobraźmy sobie łączenie danych o sprzedaży z danymi o klientach.
  • Obsługa Brakujących Danych: Uzupełnianie (fillna()), usuwanie (dropna()) lub interpolacja brakujących wartości. Przykładowo, wypełnianie brakujących cen produktów średnią ceną.

Bonus Ćwiczenia

Spróbuj swoich sił w poniższych zadaniach:

  1. Zadanie 1: Transformacja Danych o Sprzedaży. Masz DataFrame z danymi o sprzedaży: id_zamówienia, produkt, cena, ilość. Utwórz nową kolumnę 'Wartość_Zamówienia' obliczając wartość zamówienia dla każdego wiersza. Następnie pogrupuj dane po produkcie i oblicz sumę 'Wartość_Zamówienia' dla każdego produktu.
              
                # Przykład (pseudokod)
                df['Wartość_Zamówienia'] = df['cena'] * df['ilość']
                sprzedaz_po_produkcie = df.groupby('produkt')['Wartość_Zamówienia'].sum()
              
            
  2. Zadanie 2: Scalanie Danych o Klientach. Masz dwa DataFrame'y: jeden z danymi o klientach (id_klienta, imię, nazwisko) i drugi z danymi o zamówieniach (id_zamówienia, id_klienta, produkt). Połącz te DataFrame'y na podstawie 'id_klienta'.
              
                # Przykład (pseudokod)
                polaczone_dane = pd.merge(klienci, zamowienia, on='id_klienta')
              
            

Real-World Connections: Pandas w Działaniu

Pandas jest niezastąpiony w wielu branżach:

  • Analiza Sprzedaży i Marketingu: Tworzenie raportów, analiza trendów sprzedaży, segmentacja klientów. Wyobraź sobie analizę danych z Black Friday!
  • Inżynieria Danych: Przygotowywanie danych do analizy, czyszczenie i transformacja danych z różnych źródeł (CSV, Excel, bazy danych).
  • Finanse: Analiza portfeli, wyceny aktywów, zarządzanie ryzykiem. Modelowanie ryzyka kredytowego w banku.
  • Badania Naukowe: Analiza danych eksperymentalnych, obróbka danych z badań.

Challenge Yourself: Zaawansowane Wyzwania

Przejdź do bardziej skomplikowanych zadań:

  • Proces ETL w Minispółce. Wykorzystaj Pandas do stworzenia mini-procesu ETL: wczytaj dane z pliku CSV, wyczyść je (usuń duplikaty, uzupełnij braki), przekształć (zmień format daty, dodaj kolumnę), a następnie zapisz przetworzone dane do nowego pliku CSV.

Dalsza Nauka: Krok po Kroku

Kontynuuj swoją przygodę z Pandas, eksplorując:

  • Zaawansowane Filtrowanie: Używanie złożonych warunków logicznych do filtrowania danych.
  • Praca z danymi czasowymi: Analiza danych z indeksami czasowymi, resampling, time-series.
  • Integracja z bazami danych: Wczytywanie i zapisywanie danych do baz danych za pomocą Pandas.
  • Biblioteki Wizualizacyjne: Połączenie Pandas z bibliotekami takimi jak Matplotlib lub Seaborn do tworzenia wykresów i wizualizacji danych.
  • Dokumentacja Pandas: Oficjalna dokumentacja Pandas jest Twoim najlepszym przyjacielem. Zaglądaj tam regularnie! https://pandas.pydata.org/docs/

Powodzenia w dalszej nauce! Pamiętaj, praktyka czyni mistrza. Im więcej kodzisz, tym lepiej rozumiesz!

Interactive Exercises

Wczytywanie i Badanie Danych

Pobierz plik CSV z danymi o sprzedaży (np. z internetu). Wczytaj go do Pandas. Użyj `head()`, `info()` i `describe()` do zbadania danych. Co możesz powiedzieć o danych na podstawie tych metod?

Filtrowanie Danych

Korzystając z danych z poprzedniego ćwiczenia, przefiltruj dane, aby wyświetlić tylko transakcje o wartości powyżej 100 zł. Następnie posortuj je po dacie.

Agregacja Danych

Korzystając z danych o sprzedaży, oblicz łączną wartość sprzedaży dla każdego produktu. Użyj metody `groupby()`.

Refleksja nad Danymi

Zastanów się, jakie pytania biznesowe mogłyby być odpowiedzią na analizę danych o sprzedaży. Jakie dodatkowe dane mogłyby być przydatne w analizie?

Knowledge Check

Question 1: Jaką komendę używamy do wczytania danych z pliku CSV do DataFrame w Pandas?

Question 2: Która metoda służy do wyświetlania pierwszych pięciu wierszy DataFrame?

Question 3: Jakiego argumentu używamy w funkcji `drop()` do usunięcia kolumny?

Question 4: Która funkcja służy do obliczania średniej wartości kolumny w DataFrame?

Question 5: Co robi metoda `groupby()`?

Practical Application

Wyobraź sobie, że pracujesz w sklepie internetowym. Masz dostęp do danych o sprzedaży. Wykorzystaj Pandas do analizy danych, aby zidentyfikować najlepiej sprzedające się produkty, trendy w sprzedaży i obszary wymagające poprawy.

Key Takeaways

Next Steps

Przygotuj się na następną lekcję, w której skupimy się na wizualizacji danych za pomocą biblioteki Matplotlib i Seaborn. Zastanów się nad różnymi sposobami wizualizacji danych (wykresy liniowe, słupkowe, kołowe).

Your Progress is Being Saved!

We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.

Next Lesson (Day 4)