**Praca z danymi w Pythonie – Biblioteka Pandas

Dzisiejsza lekcja wprowadza Cię w potężne narzędzie do analizy danych w Pythonie: bibliotekę Pandas. Nauczysz się, jak wczytywać, przetwarzać i eksplorować dane, przygotowując je do dalszej analizy i modelowania.

Learning Objectives

  • Poznasz podstawowe struktury danych w Pandas: Series i DataFrame.
  • Nauczysz się wczytywać dane z różnych formatów (np. CSV, Excel) do DataFrame.
  • Opanujesz podstawowe operacje na danych: filtrowanie, sortowanie, wybieranie kolumn i wierszy.
  • Zdobędziesz umiejętność analizy danych za pomocą metod agregacyjnych (np. sum, mean, min, max).

Lesson Content

Wprowadzenie do Pandas

Pandas to biblioteka Python, która dostarcza nam wydajnych struktur danych i narzędzi do analizy danych. Jest fundamentem dla wielu zadań w Data Science. Kluczowymi strukturami są:

  • Series: Jednowymiarowa, etykietowana tablica, podobna do kolumny w arkuszu kalkulacyjnym. Może przechowywać różne typy danych (np. liczby, ciągi znaków).
  • DataFrame: Dwuwymiarowa, etykietowana struktura danych, podobna do tabeli w arkuszu kalkulacyjnym lub bazie danych. Składa się z kolumn Series. Pozwala na łatwe manipulowanie danymi.

Instalacja i Import Pandas

Zanim zaczniemy, musisz zainstalować Pandas. Otwórz terminal i wpisz: pip install pandas. Następnie, w swoim skrypcie Python, zaimportuj bibliotekę:

import pandas as pd

# Konwencja: 'pd' to standardowy alias dla Pandas

Wczytywanie Danych do DataFrame

Pandas pozwala na wczytywanie danych z wielu źródeł. Najpopularniejsze to pliki CSV i Excel.

CSV:

df = pd.read_csv('dane.csv')  # Wczytuje dane z pliku 'dane.csv'
print(df.head())  # Wyświetla pierwsze 5 wierszy DataFrame

Excel:

df = pd.read_excel('dane.xlsx', sheet_name='Arkusz1') # Wczytuje z konkretnego arkusza
print(df.head())

Upewnij się, że plik 'dane.csv' lub 'dane.xlsx' znajduje się w tym samym katalogu co Twój skrypt (lub podaj pełną ścieżkę). Zauważ użycie head() – bardzo przydatne do szybkiego przeglądu danych!

Podstawowe Operacje na DataFrame

Pandas oferuje szereg funkcji do manipulacji danymi. Oto kilka przykładów:

  • Wyświetlanie informacji:
    • df.info(): Podaje informacje o typach danych i brakujących wartościach.
    • df.describe(): Generuje statystyki opisowe dla kolumn numerycznych.
  • Wybieranie kolumn:
    • df['NazwaKolumny']: Wybiera pojedynczą kolumnę jako Series.
    • df[['Kolumna1', 'Kolumna2']]: Wybiera kilka kolumn jako DataFrame.
  • Filtrowanie wierszy:
    • df[df['Kolumna'] > 10]: Filtruje wiersze, gdzie wartość w kolumnie 'Kolumna' jest większa niż 10.
  • Sortowanie:
    • df.sort_values(by='Kolumna'): Sortuje wiersze według wartości w kolumnie 'Kolumna'.
  • Agregacja:
    • df['Kolumna'].sum(): Suma wartości w kolumnie.
    • df['Kolumna'].mean(): Średnia wartości w kolumnie.
    • df.groupby('Kolumna').sum(): Grupowanie danych według kolumny i obliczanie sumy dla każdej grupy.

Deep Dive

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

Rozszerzona Lekcja 2: Pandas - Głębokie Nurkowanie w Analizie Danych

Witamy ponownie! Wczoraj poznaliście podstawy biblioteki Pandas. Dziś zagłębimy się w bardziej zaawansowane techniki, które pozwolą Wam na efektywniejszą pracę z danymi i lepsze zrozumienie ich struktury. Pamiętajcie, że Pandas to jak szwajcarski scyzoryk dla analityka danych – im więcej znacie jego funkcji, tym potężniejsze narzędzie macie w ręku!

Deep Dive Section: Zaawansowane Techniki w Pandas

Przejdźmy teraz do bardziej zaawansowanych aspektów pracy z Pandas, które usprawnią Waszą analizę danych:

1. Obsługa Brakujących Danych (Missing Data)

W prawdziwym świecie dane rzadko są idealne. Często napotkacie brakujące wartości (NaN - Not a Number). Pandas oferuje solidne metody do ich obsługi:

  • .isnull() i .notnull(): Służą do wykrywania brakujących i istniejących danych.
  • .fillna(value): Wypełnia brakujące wartości określoną wartością (np. średnią, medianą, zerem).
    Przykład: df['kolumna'].fillna(df['kolumna'].mean(), inplace=True)
  • .dropna(): Usuwa wiersze lub kolumny zawierające brakujące dane. Uwaga: Używaj z rozwagą, aby nie utracić cennych informacji.

Przykład: Wyobraźcie sobie analizę danych dotyczących ocen studentów, gdzie niektóre oceny nie zostały jeszcze wprowadzone. Obsługa NaN jest kluczowa dla prawidłowej analizy.

2. Grupowanie i Agregacja (groupby() i agg())

groupby() pozwala na grupowanie danych na podstawie jednej lub wielu kolumn. Następnie, używając agg(), możemy wykonać agregacje (np. sumę, średnią, minimum) na poszczególnych grupach. To potężne narzędzie do analizy trendów i zależności.

Przykład: Chcemy obliczyć średnią ocen studentów dla każdego kierunku studiów. Wykorzystamy groupby('kierunek'), a następnie agg({'ocena': 'mean'}).

Pamiętajcie: agg() akceptuje słownik, gdzie kluczem jest nazwa kolumny do agregacji, a wartością – nazwa funkcji agregującej (np. 'mean', 'sum', 'count').

3. Łączenie i Scalanie Danych (merge(), concat())

Często dane są rozproszone w wielu plikach lub tabelach. Pandas oferuje funkcje do ich łączenia:

  • merge(): Łączy dwa DataFrame'y na podstawie kolumny (lub kolumn) klucza, podobnie jak w SQL. Umożliwia różne typy połączeń (inner, outer, left, right).
  • concat(): Konkatenuje (łączy) DataFrame'y wzdłuż osi (wierszy lub kolumn). Przydatne, gdy mamy dane w wielu plikach CSV, które chcemy połączyć w jeden DataFrame.

Przykład: Łączenie tabeli z informacjami o studentach z tabelą z wynikami egzaminów, aby uzyskać pełny obraz.

Bonus Exercises

Przejdźmy teraz do praktyki. Wykonajcie poniższe zadania, aby utrwalić zdobytą wiedzę:

Ćwiczenie 1: Obsługa Braków Danych

Utwórzcie DataFrame z danymi zawierającymi brakujące wartości (np. NaN). Następnie:

  1. Zastosujcie .isnull(), aby zidentyfikować brakujące dane.
  2. Wypełnijcie brakujące wartości średnią dla danej kolumny.
  3. Sprawdźcie, czy nadal istnieją braki danych (powinny zniknąć!).

Ćwiczenie 2: Grupowanie i Agregacja

Wczytajcie przykładowy dataset (np. dane o sprzedaży, oceny filmów). Następnie:

  1. Pogrupujcie dane po wybranej kolumnie (np. kategoria produktu, gatunek filmu).
  2. Obliczcie średnią, sumę lub inną agregację dla każdej grupy.
  3. Wyświetlcie wyniki.

Real-World Connections

Zastosowanie Pandas w prawdziwym świecie jest ogromne. Przykłady:

  • Analiza Sprzedaży: Przewidywanie popytu, identyfikacja trendów w sprzedaży, analiza zachowań klientów.
  • Finanse: Analiza portfela, zarządzanie ryzykiem, modelowanie cen akcji.
  • Medycyna: Analiza danych pacjentów, identyfikacja wzorców chorób, badania kliniczne.
  • Marketing: Segmentacja klientów, personalizacja kampanii reklamowych, analiza skuteczności działań marketingowych.

W Polsce, Pandas jest używany zarówno w korporacjach (np. banki, firmy ubezpieczeniowe, e-commerce), jak i w sektorze publicznym (np. analiza danych statystycznych, badania naukowe).

Challenge Yourself

Jeśli czujecie się na siłach, spróbujcie wykonać poniższe zadania:

  1. Wczytajcie duży plik CSV. Zmierzcie czas potrzebny na wczytanie danych. Zoptymalizujcie wczytywanie (np. używając chunksize).
  2. Stwórzcie funkcję, która automatycznie wykrywa i usuwa kolumny, które mają więcej niż 50% brakujących danych.
  3. Użyjcie pivot_table() do stworzenia tabeli przestawnej, podsumowującej dane z DataFrame.

Further Learning

Chcecie dowiedzieć się więcej? Polecamy następujące materiały:

  • Dokumentacja Pandas: Oficjalna dokumentacja jest najlepszym źródłem informacji: https://pandas.pydata.org/docs/
  • Kursy online: Platformy takie jak Coursera, Udemy, czy edX oferują liczne kursy poświęcone Pandas i analizie danych w Pythonie.
  • Książki: "Python for Data Analysis" autorstwa Wes McKinney (twórcy Pandas) to klasyka.
  • Społeczność: Dołączcie do grup dyskusyjnych i for internetowych, aby zadawać pytania i dzielić się wiedzą (np. Stack Overflow).

Pamiętajcie, praktyka czyni mistrza! Im więcej będziecie pracować z Pandas, tym lepiej opanujecie tę potężną bibliotekę. Powodzenia!

Interactive Exercises

Wczytywanie Danych

Pobierz plik CSV z danymi (np. o sprzedaży produktów – znajdziesz je w internecie). Wczytaj dane do DataFrame. Wyświetl pierwsze 10 wierszy.

Eksploracja Danych

Użyj `df.info()` i `df.describe()` na wczytanym DataFrame. Przeanalizuj wyniki. Jakie typy danych występują? Jakie są podstawowe statystyki dla kolumn numerycznych?

Wybieranie i Filtrowanie

Wybierz z DataFrame kolumnę 'Cena' i wyświetl jej zawartość. Następnie, przefiltruj DataFrame, aby wyświetlić tylko te wiersze, gdzie 'Ilość' jest większa niż 5.

Grupowanie i Agregacja

Pogrupuj dane według kolumny 'Kategoria' i oblicz sumę 'Cena' dla każdej kategorii. Użyj `groupby()` i `sum()`.

Knowledge Check

Question 1: Która funkcja w Pandas służy do wczytywania danych z pliku CSV?

Question 2: Co robi funkcja `df.head()`?

Question 3: Która komenda służy do wyświetlenia informacji o typach danych w DataFrame?

Question 4: Jak wybieramy pojedynczą kolumnę 'Nazwa' z DataFrame o nazwie 'df'?

Question 5: Które polecenie służy do filtrowania wierszy, gdzie wartość w kolumnie 'Wiek' jest większa niż 30?

Practical Application

Wyobraź sobie, że pracujesz w sklepie internetowym. Masz plik CSV z danymi o zamówieniach (numer zamówienia, data, produkty, ceny, ilość, klient). Użyj Pandas, aby: 1. Wczytać dane. 2. Wyświetlić łączną sprzedaż dla każdego produktu. 3. Znaleźć 5 najczęściej kupowanych produktów. 4. Obliczyć średnią wartość zamówienia.

Key Takeaways

Next Steps

Przygotuj się na następną lekcję, która skupi się na czyszczeniu i przetwarzaniu danych (data cleaning and preprocessing). Przeglądnij podstawowe metody obsługi brakujących danych i formatowania danych.

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 3)