Baza wiedzy / Python
Jak działa pandas groupby w języku Python? Przykład zastosowania

Funkcja groupby() z biblioteki Pandas to jedno z najpotężniejszych narzędzi, z jakimi możemy pracować w analizie danych. Dzięki niej możemy grupować dane według określonych kategorii, a następnie stosować na nich różnego rodzaju operacje agregujące. Jeśli chcesz dowiedzieć się, jak działa pandas groupby w języku Python, trafiłeś we właściwe miejsce. Pokażę Ci, jak korzystać z tej funkcji na praktycznych przykładach.
Podstawy działania pandas groupby()
Metoda groupby() pozwala nam podzielić dane na grupy na podstawie jednej lub kilku kolumn. Po utworzeniu grup możemy przeprowadzać obliczenia statystyczne, sortować dane lub analizować je w inny sposób.
Przykład:
import pandas as pd
# Tworzymy przykładowe dane
data = {
'Kategoria': ['A', 'B', 'A', 'B', 'A', 'C', 'C', 'B'],
'Wartość': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
# Grupowanie po kolumnie "Kategoria"
grupa = df.groupby('Kategoria')
# Sprawdzamy, co mamy w grupach
for nazwa, grupa in grupa:
print(f'Grupa: {nazwa}')
print(grupa, "\n")
Wynik działania powyższego kodu pokazuje, że dane podzieliły się na grupy według kategorii.
Wykonywanie operacji na grupach
Gdy już mamy dane podzielone na grupy, możemy wykonywać na nich operacje agregujące. Kilka najczęściej używanych metod:
sum()– sumowanie wartości w każdej grupiemean()– obliczanie średniejcount()– liczenie liczby elementówmin()/max()– znajdowanie najmniejszych i największych wartości
Przykładowy kod:
print(df.groupby('Kategoria').sum())
Wynik:
| Kategoria | Wartość (suma) |
|---|---|
| A | 90 |
| B | 140 |
| C | 130 |
Grupowanie według wielu kolumn
Możemy również grupować nasze dane według więcej niż jednej kolumny:
df['Rok'] = [2021, 2022, 2021, 2022, 2021, 2022, 2021, 2022]
grupa_wielo = df.groupby(['Kategoria', 'Rok']).sum()
print(grupa_wielo)
Wynikiem jest grupowanie względem dwóch zmiennych.
Filtrowanie grup
Jeśli chcemy zachować tylko te grupy, które spełniają określone warunki, możemy użyć metody filter():
filtered = df.groupby('Kategoria').filter(lambda x: x['Wartość'].sum() > 100)
print(filtered)
Teraz w zbiorze pozostaną tylko te grupy, których suma wartości przekracza 100.
Podsumowanie
Funkcja groupby() w Pandas to niezwykle elastyczne narzędzie do analizy danych. Możemy jej używać do grupowania wartości, wykonywania operacji agregujących i filtrowania danych. Jeśli pracujesz z dużymi zestawami danych w Pythonie, warto dobrze poznać możliwości tego rozwiązania.
