Jak działa pandas cumprod w języku Python? Przykład zastosowania

Jak działa pandas cumprod w języku Python? Przykład zastosowania
„`html

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ści NaN. Domyślnie ustawione na True.

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() oraz DataFrame.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 zastosowania
KajoDataSpace