
Pracując z biblioteką Pandas w Pythonie, często spotykamy się z koniecznością przeprowadzania operacji na danych w sposób skumulowany. Jednym z przydatnych narzędzi w takich sytuacjach jest metoda pandas.cumprod()
. W tym artykule pokażę, jak działa cumprod()
i w jakich przypadkach może się przydać.
Co to jest pandas.cumprod()
?
Metoda pandas.cumprod()
służy do obliczania skumulowanego iloczynu wartości w kolumnie serii lub DataFrame. Innymi słowy, wynik dla każdego wiersza to iloczyn wszystkich poprzednich wartości z danej kolumny. Jest to szczególnie przydatne w analizie finansowej i obliczeniach statystycznych.
Podstawowa składnia
Podstawowa składnia metody wygląda następująco:
Series.cumprod(axis=0, skipna=True)
DataFrame.cumprod(axis=0, skipna=True)
Gdzie:
axis
– określa, czy operacja ma być wykonywana wzdłuż wierszy (axis=0) czy kolumn (axis=1).skipna
– decyduje, czy pomijać wartościNaN
. Domyślnie ustawione naTrue
.
Przykład zastosowania na obiekcie Series
Najprostszy sposób użycia cumprod()
to zastosowanie go na obiekcie Series
. Oto przykład:
import pandas as pd
# Tworzymy serię liczb
data = pd.Series([2, 3, 4, 5])
# Obliczamy skumulowany iloczyn
cumprod_result = data.cumprod()
print(cumprod_result)
Wynik:
0 2
1 6
2 24
3 120
dtype: int64
Każdy element to wynik mnożenia wszystkich poprzednich wartości – dla pozycji 2 mamy wynik 2 * 3
, dla pozycji 3 – 2 * 3 * 4
, itd.
Przykład zastosowania na DataFrame
Metoda cumprod()
działa również na DataFrame
. Przyjrzyjmy się przykładowemu użyciu:
import pandas as pd
# Tworzymy DataFrame
df = pd.DataFrame({
'A': [2, 3, 4, 5],
'B': [1, 5, 6, 2]
})
# Obliczamy skumulowany iloczyn dla każdej kolumny
cumprod_df = df.cumprod()
print(cumprod_df)
Wynik:
A B
0 2 1
1 6 5
2 24 30
3 120 60
Jak widać, operacja została wykonana oddzielnie dla każdej kolumny.
Obsługa wartości NaN
Domyślnie metoda cumprod()
pomija wartości NaN
. Sprawdźmy, jak to wygląda w praktyce:
import pandas as pd
df = pd.DataFrame({
'A': [2, 3, None, 5],
'B': [1, None, 6, 2]
})
# Obliczamy skumulowany iloczyn pomijając NaN
cumprod_df = df.cumprod()
print(cumprod_df)
Wynik:
A B
0 2.0 1.0
1 6.0 NaN
2 NaN 6.0
3 30.0 12.0
Wartości NaN
zatrzymują propagację wyniku w kolumnie A, ale jeśli chcemy, możemy je wypełnić wartością 1 przed zastosowaniem cumprod()
:
df.fillna(1).cumprod()
Warto pamiętać, że możliwość kontrolowania obsługi NaN
daje większą elastyczność w analizie danych.
Porównanie z cumsum()
Metoda cumprod()
łatwo bywa mylona z cumsum()
, która działa na podobnej zasadzie, ale oblicza skumulowaną sumę. Oto różnica:
Metoda | Operacja | Przykład |
---|---|---|
cumprod() |
Iloczyn wartości | 2, 2*3, 2*3*4 |
cumsum() |
Suma wartości | 2, 2+3, 2+3+4 |
Wybór odpowiedniej funkcji zależy od kontekstu – jeśli analizujemy zmiany procentowe lub wartości indeksów giełdowych, cumprod()
może być bardziej użyteczne.
Podsumowanie
Metoda pandas.cumprod()
jest niezwykle przydatna przy analizie danych liczbowych, pozwalając w łatwy sposób uzyskać skumulowane iloczyny dla serii i ramek danych. Można jej użyć do operacji finansowych, analizy wzrostu wartości czy predykcji zmian procentowych.
Podsumowując, warto pamiętać o:
- Podstawowej składni
Series.cumprod()
orazDataFrame.cumprod()
. - Obsłudze wartości
NaN
i możliwości ich wcześniejszego uzupełnienia. - Alternatywie w postaci
cumsum()
, jeśli interesuje nas skumulowana suma, a nie iloczyn.
Dzięki znajomości tej metody praca z danymi w Pandas staje się jeszcze bardziej efektywna.
„` Inny ciekawy artykuł: Jak działa pandas cumsum w języku Python? Przykład zastosowaniaOpanuj 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.