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