**Podstawy Pandas: Wczytywanie, przeglądanie i filtrowanie danych

W drugiej lekcji eksploracyjnej analizy danych (EDA) skupimy się na podstawach biblioteki Pandas, potężnego narzędzia do manipulacji danymi w Pythonie. Nauczycie się wczytywać dane, przeglądać je, zrozumieć strukturę, a także filtrować, aby wyodrębniać interesujące fragmenty.

Learning Objectives

  • Wczytywać dane z plików CSV i innych formatów do DataFrame Pandas.
  • Wyświetlać podstawowe informacje o DataFrame (np. typy danych, wymiary, pierwsze i ostatnie wiersze).
  • Filtrować dane w DataFrame na podstawie kryteriów logicznych.
  • Manipulować kolumnami i wierszami DataFrame, w tym wybierać, dodawać i usuwać dane.

Lesson Content

Wprowadzenie do Pandas i DataFrame

Pandas to biblioteka Pythona, która oferuje wysokowydajne struktury danych i narzędzia do analizy danych. Kluczową strukturą danych w Pandas jest DataFrame, który można sobie wyobrazić jako tabelę (arkusz kalkulacyjny) z wierszami i kolumnami. Aby użyć Pandas, musimy najpierw ją zaimportować: import pandas as pd. Później będziemy używać 'pd' jako skrótu do odwoływania się do Pandas. Wczytujemy dane z pliku CSV, używając pd.read_csv('nazwa_pliku.csv'). Na przykład, załóżmy, że mamy plik 'dane_sprzedazy.csv'. Użyjemy tego pliku w ćwiczeniach.

Wczytywanie danych z CSV i innych źródeł

Podstawową funkcją do wczytywania danych jest pd.read_csv(). Przykład: sprzedaz_df = pd.read_csv('dane_sprzedazy.csv'). Jeżeli plik CSV ma nietypowy separator (np. średnik zamiast przecinka), można to określić parametrem sep: pd.read_csv('dane_sprzedazy.csv', sep=';'). Dla plików Excela używamy pd.read_excel('nazwa_pliku.xlsx'). Pandas obsługuje również wiele innych formatów, takich jak JSON, HTML, SQL i wiele innych. Pamiętaj, aby umieścić plik z danymi w tym samym folderze co Twój skrypt Pythona, lub podać pełną ścieżkę dostępu do pliku.

Przeglądanie danych: .head(), .tail(), .info()

Po wczytaniu danych warto je szybko przejrzeć. .head() wyświetla domyślnie pięć pierwszych wierszy DataFrame: sprzedaz_df.head(). .tail() wyświetla pięć ostatnich wierszy: sprzedaz_df.tail(). .info() dostarcza informacji o DataFrame, takich jak liczba wierszy i kolumn, typy danych w kolumnach i informacje o brakujących wartościach: sprzedaz_df.info(). Użyjemy również sprzedaz_df.shape aby zobaczyć rozmiar DataFrame (liczba wierszy, liczba kolumn).

Filtrowanie danych: Logika i Operacje

Filtrowanie danych to kluczowa umiejętność w EDA. Możemy filtrować dane na podstawie warunków logicznych. Na przykład, aby znaleźć wszystkie transakcje o wartości powyżej 100 zł, użyjemy: sprzedaz_df[sprzedaz_df['wartosc'] > 100]. Możemy łączyć warunki za pomocą operatorów logicznych: & (AND), | (OR), ~ (NOT). Przykład: sprzedaz_df[(sprzedaz_df['wartosc'] > 100) & (sprzedaz_df['produkt'] == 'Kawa')] wyświetli transakcje z kawą o wartości powyżej 100 zł.

Deep Dive

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

Rozszerzona Lekcja 2: Eksploracyjna Analiza Danych (EDA) - Pandas Deep Dive

Witamy na drugim dniu naszej przygody z eksploracyjną analizą danych! Dziś zagłębimy się w bibliotekę Pandas, ucząc się nie tylko podstaw, ale także bardziej zaawansowanych technik, które uczynią Was ekspertami w manipulacji danymi.

Deep Dive Section: Zaawansowane Techniki w Pandas

W poprzedniej lekcji nauczyliście się podstaw, takich jak wczytywanie danych i filtrowanie. Teraz odkryjemy kilka zaawansowanych technik, które pozwolą Wam na bardziej efektywną pracę z danymi:

  1. Agregacja i Grupowanie Danych: Pandas oferuje potężne funkcje do agregacji danych. Użyjemy groupby() do grupowania danych na podstawie jednej lub kilku kolumn, a następnie zastosujemy funkcje agregujące, takie jak mean(), sum(), count(), max() i min(). Na przykład, możemy obliczyć średnią cenę produktów pogrupowanych po kategorii.
  2.         
    import pandas as pd
    
    # Załóżmy, że mamy DataFrame 'sprzedaz'
    sprzedaz_pogrupowana = sprzedaz.groupby('kategoria')['cena'].mean()
    print(sprzedaz_pogrupowana)
            
          
  3. Łączenie i Scalanie DataFrame: Często będziemy mieli dane w wielu plikach lub DataFrame. Pandas pozwala na łatwe łączenie i scalanie danych za pomocą funkcji merge(), join() i concat(). merge() służy do łączenia DataFrame na podstawie wspólnych kolumn, join() do łączenia na podstawie indeksu, a concat() do łączenia wzdłuż osi (wiersze lub kolumny).
  4.         
    # Załóżmy, że mamy dwa DataFrame: 'zamowienia' i 'klienci'
    polaczone_dane = pd.merge(zamowienia, klienci, on='id_klienta', how='left')
    print(polaczone_dane.head())
            
          
  5. Obsługa Brakujących Danych (NaN): W świecie rzeczywistym dane rzadko są idealne. Pandas ułatwia identyfikację i obsługę brakujących danych (reprezentowanych jako NaN). Możemy wypełniać brakujące wartości (fillna()), usuwać wiersze z brakującymi danymi (dropna()) lub interpolować wartości.
  6.         
    # Wypełnianie brakujących wartości średnią
    dane.fillna(dane.mean(), inplace=True)
    print(dane.isnull().sum()) # Sprawdzamy czy brakujące dane zostały wypełnione
            
          

Bonus Exercises

Przetestuj swoją wiedzę! Poniżej znajdują się dodatkowe ćwiczenia, które pomogą Ci utrwalić zdobytą wiedzę:

  1. Ćwiczenie 1: Analiza Danych o Sprzedaży w Polskich Sklepach. Masz plik CSV zawierający dane o sprzedaży produktów w różnych polskich sklepach (np. Biedronka, Lidl, Auchan). Użyj Pandas do:
    1. Wczytania danych do DataFrame.
    2. Obliczenia sumy sprzedaży dla każdego sklepu.
    3. Wyświetlenia 5 najlepiej sprzedających się produktów.
  2. Ćwiczenie 2: Analiza Danych o Frekwencji w Kinach. Masz plik CSV z danymi o frekwencji w kinach w polskich miastach. Użyj Pandas do:
    1. Pogrupowania danych po miastach.
    2. Wyznaczenia średniej frekwencji dla każdego miasta.
    3. Znalezienia miasta z najwyższą i najniższą średnią frekwencją.
  3. Ćwiczenie 3: Czyszczenie Danych o Użytkownikach. Masz DataFrame z danymi o użytkownikach. Dane te zawierają braki (NaN) w kolumnie "wiek".
    1. Wypełnij brakujące wartości wieku średnią wieku.
    2. Sprawdź, czy wciąż istnieją brakujące dane w DataFrame.

Real-World Connections: Gdzie tego użyjemy?

Umiejętności zdobyte dzisiaj znajdują zastosowanie w wielu dziedzinach:

  • Analiza finansowa: Analiza danych giełdowych, zarządzanie portfelem, prognozowanie.
  • Marketing i sprzedaż: Segmentacja klientów, analiza zachowań zakupowych, optymalizacja kampanii reklamowych.
  • Nauka o danych i badania: Przygotowywanie i analiza danych eksperymentalnych, eksploracja danych z badań naukowych (np. w dziedzinach takich jak medycyna, socjologia).
  • Logistyka i zarządzanie łańcuchem dostaw: Optymalizacja tras, zarządzanie zapasami, analiza efektywności dostaw.
  • Analiza danych społecznych: Badanie trendów w mediach społecznościowych, analiza opinii publicznej, monitorowanie sentymentu.

Wyobraź sobie, że pracujesz dla polskiego startupu, który chce zoptymalizować swoją strategię marketingową. Dzięki Pandas możesz analizować dane o klientach, identyfikować najbardziej wartościowych klientów i personalizować komunikację marketingową. A może pracujesz w firmie badawczej, gdzie analizujesz dane z badań rynku, takich jak popularność pierogów ruskich w różnych regionach Polski. Pandas to Twój najlepszy przyjaciel!

Challenge Yourself

Jeśli czujesz się pewnie, spróbuj wykonać to zaawansowane zadanie:

Challenge: Stwórz skrypt, który wczytuje dane o cenach akcji z pliku CSV. Zastosuj filtr, aby wybrać tylko te akcje, których cena wzrosła o co najmniej 5% w ciągu tygodnia. Wykorzystaj funkcje resample() do analizy trendów tygodniowych.

Further Learning

Chcesz dowiedzieć się więcej? Oto kilka sugestii:

  • Oficjalna Dokumentacja Pandas: https://pandas.pydata.org/docs/ - to najlepsze źródło wiedzy.
  • Kursy online: Platformy takie jak Coursera, Udemy, DataCamp oferują zaawansowane kursy Pandas.
  • Książki: Poszukaj książek o analizie danych w Pythonie, często zawierają one zaawansowane tematy z Pandas.
  • Projekty: Znajdź otwarte zestawy danych (np. z Kaggle) i spróbuj analizować je, używając poznanych technik.

Powodzenia w dalszej nauce! Pamiętajcie, praktyka czyni mistrza. Do zobaczenia na kolejnej lekcji!

Interactive Exercises

Ćwiczenie 1: Wczytywanie i Przeglądanie Danych

Wczytaj plik 'dane_sprzedazy.csv' do DataFrame. Wyświetl pierwsze 10 wierszy, informacje o DataFrame oraz jego wymiary. Pamiętaj, żeby wcześniej plik 'dane_sprzedazy.csv' (dołączony poniżej - w sekcji 'Praktyczne Zastosowanie'.) umieścić w tym samym folderze co skrypt.

Ćwiczenie 2: Filtrowanie Danych

Wykorzystując załadowany DataFrame, przefiltruj dane, aby wyświetlić tylko transakcje z produktem 'Herbata' i wartością sprzedaży powyżej 50 zł. Wyświetl tylko te wiersze.

Ćwiczenie 3: Modyfikacja Danych (Opcjonalne)

Spróbuj dodać nową kolumnę 'rabat' (np. 0.10 = 10%) dla wszystkich transakcji powyżej 200 zł. Następnie wyświetl zaktualizowany DataFrame. (Podpowiedź: użyj `df['nowa_kolumna'] = ...`)

Knowledge Check

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

Question 2: Która metoda wyświetla podstawowe informacje o DataFrame, takie jak typy danych w kolumnach i informacje o brakujących wartościach?

Question 3: Jakiego operatora logicznego używamy do połączenia dwóch warunków w filtrowaniu danych?

Question 4: Co robi metoda `.head()`?

Question 5: Jaka jest główna struktura danych w bibliotece Pandas?

Practical Application

Wyobraź sobie, że jesteś analitykiem danych w małej kawiarni. Otrzymujesz plik 'dane_sprzedazy.csv' (przykład poniżej) z informacjami o sprzedaży za ostatni miesiąc. Twoim zadaniem jest użycie Pandas do wczytania danych, znalezienia najpopularniejszych produktów i wyodrębnienia informacji o transakcjach powyżej określonej kwoty. Przykładowy plik 'dane_sprzedazy.csv': ```csv Data,Produkt,Wartosc 2024-01-01,Kawa,15.50 2024-01-01,Herbata,10.00 2024-01-02,Kawa,20.00 2024-01-02,Ciastko,8.00 2024-01-03,Kawa,25.00 2024-01-03,Herbata,12.00 2024-01-04,Ciastko,10.00 2024-01-04,Kawa,30.00 2024-01-05,Herbata,15.00 2024-01-05,Ciastko,12.00 ```

Key Takeaways

Next Steps

Przygotuj się na kolejną lekcję, w której omówimy zaawansowane operacje na danych, takie jak grupowanie, agregacja i wizualizacja danych za pomocą Matplotlib.

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)