
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
.
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.