
Brakujące dane w zbiorach często stanowią poważny problem w analizie danych. Na szczęście biblioteka Pandas oferuje metodę interpolate()
, która umożliwia estymowanie brakujących wartości. W tym artykule wyjaśnię, jak działa pandas.interpolate()
w języku Python oraz przedstawię przykład zastosowania.
Co to jest pandas.interpolate()?
Metoda interpolate()
w Pandas służy do uzupełniania brakujących wartości w ramach obiektów Series
oraz DataFrame
. Działa poprzez szacowanie wartości na podstawie istniejących danych i może wykorzystywać różne metody interpolacji, takie jak:
- Interpolacja liniowa
- Interpolacja wielomianowa
- Interpolacja metodą spline
- Interpolacja na podstawie indeksu
Jest to świetne rozwiązanie dla danych czasowych i innych zestawów, gdzie braki mogą być estymowane na podstawie sąsiadujących wartości.
Składnia pandas.interpolate()
Najprostsza forma wywołania wygląda tak:
df.interpolate()
Natomiast pełna składnia metody to:
df.interpolate(method='linear', axis=0, limit=None, limit_direction='forward', limit_area=None, inplace=False, downcast=None)
Omówmy ważniejsze parametry:
method
– określa metodę interpolacji (np.'linear'
,'polynomial'
,'spline'
,'nearest'
).axis
– określa, czy interpolacja odbywa się po wierszach (0) czy kolumnach (1).limit
– maksymalna liczba uzupełnianych wartości.limit_direction
– określa kierunek interpolacji (forward, backward, both).inplace
– jeśli ustawione naTrue
, zmienia oryginalny obiekt.
Prosty przykład zastosowania
Załóżmy, że mamy następujący zbiór danych:
import pandas as pd
import numpy as np
data = {'A': [1, np.nan, 3, np.nan, 5], 'B': [2, 4, np.nan, 8, 10]}
df = pd.DataFrame(data)
print(df)
To wygeneruje następującą tabelę:
Index | A | B |
---|---|---|
0 | 1.0 | 2.0 |
1 | NaN | 4.0 |
2 | 3.0 | NaN |
3 | NaN | 8.0 |
4 | 5.0 | 10.0 |
Interpolacja liniowa
Teraz spróbujemy uzupełnić brakujące wartości wykorzystując interpolację liniową, która po prostu szacuje brakujące wartości jako wartość pomiędzy dwoma znanymi punktami:
df_interpolated = df.interpolate(method='linear')
print(df_interpolated)
Wynik po interpolacji:
Index | A | B |
---|---|---|
0 | 1.0 | 2.0 |
1 | 2.0 | 4.0 |
2 | 3.0 | 6.0 |
3 | 4.0 | 8.0 |
4 | 5.0 | 10.0 |
Jak widać, brakujące wartości zostały uzupełnione poprzez przybliżenie liniowe.
Inne metody interpolacji
Pandas oferuje także inne metody interpolacji, które można użyć w zależności od specyfiki danych:
- Interpolacja wielomianowa:
- Interpolacja metodą nearest: (po prostu przybliża do najbliższej znanej wartości)
- Interpolacja spline: wykorzystuje funkcje typu spline
df.interpolate(method='polynomial', order=2)
df.interpolate(method='nearest')
df.interpolate(method='spline', order=3)
Kiedy stosować pandas.interpolate()?
Metoda interpolate()
jest przydatna w wielu sytuacjach, szczególnie gdy:
- Pracujemy z danymi czasowymi i chcemy uzupełnić brakujące wartości na podstawie trendu.
- Mamy niewielkie braki w danych i możemy bezpiecznie przybliżyć brakujące wartości.
- Potrzebujemy wypełnić luki w danych przed zastosowaniem algorytmów analitycznych lub uczenia maszynowego.
Podsumowanie
Metoda pandas.interpolate()
w języku Python to potężne narzędzie do uzupełniania brakujących wartości w zbiorach danych. Dzięki różnym metodom interpolacji możemy dostosować podejście do specyfiki naszych danych, eliminując puste wartości w spójny sposób. Jeśli zależy Ci na precyzyjnej estymacji braków, warto przetestować różne metody i dobrać najlepszą dla konkretnego przypadku.
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.