
W pracy z danymi w Pythonie niezwykle ważne jest stosowanie odpowiednich narzędzi do ich analizy i agregacji. Jednym z najczęściej używanych modułów jest pandas
, a jedna z najpotężniejszych metod w tej bibliotece to agg()
. W tym artykule pokażę, jak działa pandas.agg()
w języku Python oraz przedstawię przykłady jego zastosowania.
Co to jest pandas.agg()?
Metoda agg()
(skrót od „aggregate”) pozwala na wykonywanie różnych operacji agregujących na kolumnach obiektów DataFrame
i Series
. Dzięki niej możemy wywoływać wbudowane funkcje, a także własne funkcje lambda na jednej lub wielu kolumnach jednocześnie.
Podstawowa składnia pandas.agg()
Funkcja agg()
może być stosowana zarówno na obiekcie Series
, jak i na DataFrame
. Podstawowa składnia wygląda następująco:
df.agg(func, axis=0, *args, **kwargs)
func
– pojedyncza funkcja, lista funkcji lub słownik funkcji do zastosowania.axis
– określa, czy operacja ma być stosowana wzdłuż wierszy (axis=0
) czy kolumn (axis=1
).*args, **kwargs
– dodatkowe argumenty przekazywane do funkcji agregujących.
Pandas.agg() na Series – podstawowe zastosowanie
Na początek zobaczmy, jak działa agg()
na obiekcie Series
:
import pandas as pd
# Tworzymy serię liczb
s = pd.Series([1, 2, 3, 4, 5])
# Stosujemy kilka funkcji agregujących
result = s.agg(['sum', 'mean', 'max'])
print(result)
Wynik:
sum 15.0
mean 3.0
max 5.0
dtype: float64
Jak widać, możemy z łatwością zastosować wiele funkcji na raz, zwracając nową serię.
Pandas.agg() na DataFrame – przykład zastosowania
Funkcja agg()
staje się jeszcze potężniejsza, gdy używamy jej na obiekcie DataFrame
. Poniżej przykład:
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50]
})
# Agregacja dla całej tabeli
result = df.agg(['sum', 'mean'])
print(result)
Wynik:
A | B | |
---|---|---|
sum | 15.0 | 150.0 |
mean | 3.0 | 30.0 |
Stosowanie różnych funkcji na różnych kolumnach
Jednym z ciekawszych sposobów użycia agg()
jest określanie różnych metod dla poszczególnych kolumn:
result = df.agg({
'A': ['sum', 'min'],
'B': ['max', 'mean']
})
print(result)
Wynik:
A | B | |
---|---|---|
sum | 15.0 | NaN |
min | 1.0 | NaN |
max | NaN | 50.0 |
mean | NaN | 30.0 |
Używanie własnych funkcji z pandas.agg()
Oprócz wbudowanych funkcji możemy także definiować własne metody agregujące:
result = df.agg({
'A': lambda x: x.max() - x.min(),
'B': lambda x: x.sum() / 2
})
print(result)
Wynik:
A 4.0
B 75.0
dtype: float64
Kiedy warto używać pandas.agg()?
Oto kilka przypadków, gdy agg()
to najlepszy wybór:
- Gdy chcemy zastosować wiele różnych operacji agregujących jednocześnie.
- Gdy musimy użyć różnych metod dla różnych kolumn.
- Gdy chcemy wprowadzić niestandardowe funkcje agregujące.
- Gdy pracujemy z dużymi zbiorami danych i potrzebujemy efektywnego agregowania.
Podsumowanie
Metoda pandas.agg()
to niezwykle potężne narzędzie do agregacji danych w języku Python. Pozwala na stosowanie gotowych oraz niestandardowych funkcji zarówno na pojedynczych seriach, jak i całych tabelach DataFrame
. Dzięki elastyczności oraz możliwości określania różnych metod dla poszczególnych kolumn, jest niezastąpiona w analizie danych.
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.