
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:
df.interpolate(method='polynomial', order=2)
-
- Interpolacja metodą nearest: (po prostu przybliża do najbliższej znanej wartości)
df.interpolate(method='nearest')
-
- Interpolacja spline: wykorzystuje funkcje typu spline
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.
Inny ciekawy artykuł:
Jak działa pandas resample w języku Python? Przykład zastosowania
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, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

