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

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

Pracując z danymi w bibliotece pandas, często pojawia się potrzeba przesunięcia wartości w ramach kolumny. Jednym z najprostszych sposobów na osiągnięcie tego celu jest wykorzystanie metody shift(). W tym artykule szczegółowo omówię, jak działa pandas shift w języku Python, a także pokażę praktyczne zastosowanie tej funkcji.

Co robi funkcja pandas.shift()?

Metoda shift() pozwala na przesunięcie wartości w ramach wybranej kolumny lub całego DataFrame. Możesz przesuwać wartości zarówno w górę, jak i w dół, a także działać na poziomie indexów.

Główne zastosowania tej metody obejmują:

  • Tworzenie kolumn przedstawiających wcześniejsze lub późniejsze wartości danej zmiennej.
  • Wyznaczanie różnic pomiędzy kolejnymi wierszami.
  • Obliczanie zwrotów procentowych w analizie finansowej.

Sprawdźmy teraz, jak działa shift() w praktyce.

Podstawowe użycie pandas.shift()

Rozpocznijmy od prostego przykładu. Załadujemy przykładowy zbiór danych i zastosujemy metodę shift() na jednej z kolumn.

import pandas as pd

# Tworzymy przykładowy DataFrame
df = pd.DataFrame({
    'Data': pd.date_range(start='2024-01-01', periods=5, freq='D'),
    'Wartość': [10, 15, 20, 25, 30]
})

# Zastosowanie metody shift()
df['Poprzednia Wartość'] = df['Wartość'].shift(1)

print(df)

Wynikiem działania tego kodu będzie:

Data Wartość Poprzednia Wartość
2024-01-01 10 NaN
2024-01-02 15 10.0
2024-01-03 20 15.0
2024-01-04 25 20.0
2024-01-05 30 25.0

Jak widać, wartości w kolumnie „Poprzednia Wartość” są przesunięte o jeden wiersz w dół, a w pierwszym wierszu pojawiła się wartość NaN, ponieważ brakuje poprzedniej wartości.

Przesunięcie w górę i o więcej niż jeden wiersz

Funkcja shift() pozwala także na przesunięcie wartości w przeciwnym kierunku, czyli w górę, oraz na większe odległości.

df['Następna Wartość'] = df['Wartość'].shift(-1)
df['Przesunięcie o 2'] = df['Wartość'].shift(2)

print(df)

Jeżeli ustawimy shift(-1), wartości zostaną przesunięte o jeden wiersz w górę. Jeśli podamy większą liczbę, przesunięcie będzie większe.

Przykład zastosowania pandas.shift() w analizie danych

Jednym z popularnych zastosowań shift() jest obliczanie różnic między kolejnymi wartościami, na przykład do analizy trendów cenowych.

df['Zmiana'] = df['Wartość'] - df['Wartość'].shift(1)

print(df[['Data', 'Wartość', 'Zmiana']])

W ten sposób możemy łatwo obliczyć dzienne zmiany wartości danej zmiennej.

Podsumowanie

Metoda shift() w bibliotece pandas jest bardzo przydatna w analizie szeregów czasowych oraz innych zbiorów danych, gdzie konieczne jest przesuwanie wartości w górę lub w dół. Możemy ją wykorzystać do:

  • tworzenia opóźnionych wartości,
  • analizy trendów poprzez różnice międzysłupkowe,
  • szacowania zmian procentowych w finansach.

Dzięki swojej intuicyjności i prostocie shift() jest jednym z podstawowych narzędzi, które warto znać podczas pracy w pandas.

„` Inny ciekawy artykuł: Jak działa pandas diff w języku Python? Przykład zastosowania
KajoDataSpace