CodeGym /Kursy /Python SELF PL /Grupowanie danych oraz obliczanie sumy i średniej wartośc...

Grupowanie danych oraz obliczanie sumy i średniej wartości

Python SELF PL
Poziom 28 , Lekcja 0
Dostępny

1. Wprowadzenie do grupowania danych

Zasady grupowania danych

W codziennym życiu często grupujemy obiekty według pewnych cech: książki z książkami, warzywa z warzywami, ludzie z ludźmi (no wiesz o co chodzi). W programowaniu działa to podobnie. Grupowanie danych pozwala podzielić duże zbiory danych na mniejsze, bardziej zarządzalne części, aby następnie je analizować.

W pandas do tego celu używamy metody groupby, która umożliwia podzielenie danych na grupy i wykonywanie różnych operacji na każdej z nich. Na przykład, możesz pogrupować sprzedaż według działów sklepu i policzyć przychód w każdym z nich.

Oto przykład, jak to może wyglądać:

Python

import pandas as pd

# Tworzymy DataFrame z danymi o sprzedaży
data = {'Dział': ['Produkty', 'Technika', 'Produkty', 'Książki', 'Technika'],
        'Przychód': [100, 200, 150, 50, 300]}

df = pd.DataFrame(data)

# Grupujemy dane według działów i liczymy sumaryczny przychód
grupa = df.groupby('Dział')['Przychód'].sum()
print(grupa)

Przykłady zastosowania grupowania

Grupowanie jest szczególnie przydatne, gdy trzeba porównać dane między różnymi kategoriami. Na przykład, jeśli pracujesz w HR i chcesz poznać średnią pensję w różnych działach firmy, albo jeśli jesteś marketingowcem i interesuje Cię, w którym miesiącu było najwięcej sprzedaży dla każdego produktu. Takie zadania stają się dużo prostsze, używając możliwości grupowania w pandas.

2. Obliczanie funkcji agregujących

Wprowadzenie do funkcji agregujących

Funkcje agregujące to specjalne funkcje, które są stosowane do grup danych i zwracają jedną wartość. Najpopularniejsze z nich to sum (suma), mean (średnia) i count (liczba elementów). Pozwalają one sprowadzić dużą ilość informacji do prostszych i bardziej zrozumiałych metryk.

Użycie funkcji agregujących

Już widzieliśmy, jak liczyć sumę w poprzednim przykładzie. Teraz zobaczmy, jak można obliczyć średnią wartość i liczbę sprzedaży w każdym dziale.

Python

# Obliczamy średni przychód według działów
srednia = df.groupby('Dział')['Przychód'].mean()
print(srednia)

# Liczymy liczbę sprzedaży w każdym dziale
liczba = df.groupby('Dział')['Przychód'].count()
print(liczba)

Przykłady obliczania funkcji agregujących

Załóżmy, że masz dane o wizytach użytkowników na stronie i chcesz dowiedzieć się, ile osób średnio odwiedza stronę każdego dnia tygodnia. Jest to klasyczne zadanie do grupowania i stosowania funkcji mean.

Python

data = {'Dzień': ['Pn', 'Wt', 'Śr', 'Czw', 'Pt', 'Śr', 'Wt'],
        'Wizyty': [120, 150, 170, 160, 180, 300, 220]}

df = pd.DataFrame(data)

# Liczymy średnią liczbę wizyt według dni
srednie_wizyty = df.groupby('Dzień')['Wizyty'].mean()
print(srednie_wizyty)

3. Praca praktyczna

Zadanie dotyczące grupowania danych i obliczania funkcji agregujących

Wyobraź sobie, że masz zestaw danych o sprzedaży. Zadanie: pogrupować je według kategorii i obliczyć sumę sprzedaży, średnią wartość zamówienia i liczbę zamówień w każdej kategorii. To pomoże Ci zrozumieć, które kategorie produktów przynoszą największe zyski i gdzie kryją się potencjalne "złote żyły".

Python

data = {
    'Kategoria': ['Elektronika', 'Odzież', 'Elektronika', 'Książki', 'Książki', 'Odzież'],
    'Suma_zamówienia': [250, 100, 150, 200, 500, 300]
}

df = pd.DataFrame(data)

# Liczymy sumę sprzedaży według kategorii
suma = df.groupby('Kategoria')['Suma_zamówienia'].sum()
print(suma)

# Liczymy średnią wartość zamówienia według kategorii
srednia_wartosc = df.groupby('Kategoria')['Suma_zamówienia'].mean()
print(srednia_wartosc)

# Liczymy liczbę zamówień według kategorii
liczba_zamowien = df.groupby('Kategoria')['Suma_zamówienia'].count()
print(liczba_zamowien)

Dyskusja wyników grupowania i analiza danych

Po wykonaniu zadania dotyczącego grupowania danych i obliczania funkcji agregujących, warto przeprowadzić analizę uzyskanych danych. Możesz zauważyć, że na przykład kategoria "Książki" ma najwyższą sumę zamówień dzięki małej liczbie, ale dużym zamówieniom. Albo że "Odzież" ma najwięcej zamówień, ale średnia wartość zamówienia jest niższa niż w przypadku "Elektroniki".

Taka analiza może pomóc w podejmowaniu bardziej świadomych decyzji biznesowych, na przykład skoncentrować się na zwiększeniu średniej wartości zamówienia w kategorii, która ma większą liczbę zamówień, ale niższą średnią wartość.

4. Błędy i specyfika

Podczas pracy z grupowaniem, jednym z najczęstszych błędów jest zapomnienie o użyciu nawiasów przy stosowaniu funkcji agregujących. Na przykład, napisanie df.groupby('Kategoria').sum() zamiast df.groupby('Kategoria')['Suma_zamówienia'].sum(). Czasami również pojawiają się problemy z brakującymi danymi. Pandas posiada wygodne metody do pracy z brakami, takie jak fillna(), które pozwalają zastąpić brakujące wartości określonymi, aby uniknąć zniekształceń w obliczeniach.

Oprócz tego, upewnij się, że typy danych są poprawne. Czasami kolumny z liczbami mogą być odczytane jako ciągi znaków i próba agregacji takich danych spowoduje błędy.

Jeśli chcesz zgłębić swoją wiedzę na temat pracy z pandas i metod grupowania, zapoznaj się z oficjalną dokumentacją pandas dla bardziej szczegółowego omówienia i przykładów.

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