
Jeśli kiedykolwiek pracowałem z biblioteką Pandas w Pythonie, na pewno natknąłem się na brakujące wartości w danych. Często zdarza się, że zestawy danych mają puste komórki, oznaczone jako NaN (Not a Number). Właśnie w takich sytuacjach przychodzi z pomocą metoda fillna(), która pozwala na wypełnianie brakujących wartości odpowiednimi danymi.
Co to jest pandas.fillna()?
Metoda fillna() w Pandas służy do zastępowania wartości NaN innymi wartościami. Może to być konkretna liczba, średnia obliczona na podstawie dostępnych danych lub nawet wartość skopiowana z innej komórki danych. To jedno z podstawowych narzędzi do czyszczenia danych, a jego znajomość jest kluczowa przy analizie dużych zbiorów informacji.
Podstawowa składnia pandas.fillna()
Podstawowa składnia metody wygląda tak:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
Gdzie:
value– wartość, którą chcemy wstawić w miejsce brakujących danych.method– sposób uzupełniania brakujących wartości (ffill– wypełnianie do przodu,bfill– wypełnianie do tyłu).axis– określa, czy uzupełniamy wiersze (0) czy kolumny (1).inplace– jeśliTrue, modyfikuje oryginalny obiekt; jeśliFalse, zwraca nowy DataFrame.limit– maksymalna liczba wartości, które mają zostać uzupełnione.
Przykłady zastosowania pandas.fillna()
1. Wypełnianie brakujących wartości stałą liczbą
Najprostszym sposobem korzystania z fillna() jest podanie konkretnej wartości, którą zastąpimy NaN.
import pandas as pd
# Tworzymy DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [None, 5, 6, None]})
# Uzupełniamy brakujące wartości wartością 0
df_filled = df.fillna(0)
print(df_filled)
Efektem działania powyższego kodu będzie DataFrame, w którym wszystkie puste wartości zostały zamienione na 0:
| A | B |
|---|---|
| 1.0 | 0.0 |
| 2.0 | 5.0 |
| 0.0 | 6.0 |
| 4.0 | 0.0 |
2. Uzupełnianie wartości średnią z kolumny
Często w praktyce dane uzupełnia się średnią z danej kolumny, aby nie zaburzyć rozkładu wartości.
# Uzupełnianie wartości średnią kolumny
df_filled = df.fillna(df.mean())
print(df_filled)
Teraz wartości NaN w każdej kolumnie zostaną zastąpione jej średnią arytmetyczną.
3. Wypełnianie poprzednią wartością (forward fill)
Gdy mamy do czynienia z danymi czasowymi, czasem warto wypełnić brakujące wartości poprzednią dostępną wartością.
# Wypełnianie brakujących wartości poprzednią wartością
df_filled = df.fillna(method='ffill')
print(df_filled)
4. Wypełnianie wartości w dół (backward fill)
Podobnie możemy wypełnić wartości metodą wsteczną.
# Wypełnianie wartości w dół (backfill)
df_filled = df.fillna(method='bfill')
print(df_filled)
Kiedy warto używać pandas.fillna()?
Metoda ta jest nieoceniona w wielu sytuacjach, między innymi:
- Przygotowywanie danych do analizy statystycznej.
- Czyszczenie zbiorów danych do uczenia maszynowego.
- Przetwarzanie dużych zbiorów danych, gdzie usunięcie pustych wartości nie jest opcją.
Podsumowanie
Jak widać, metoda fillna() w Pandas daje ogromne możliwości uzupełniania brakujących wartości w danych. Można jej używać w prosty sposób, podając konkretną wartość, lub bardziej dynamicznie – stosując wyliczenia i metody ffill czy bfill. To jedno z tych narzędzi, które warto mieć w swoim arsenale, jeśli pracujemy z danymi w Pythonie.
Inny ciekawy artykuł:
Jak działa pandas dropna 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.

