
Praca z brakującymi danymi to jedno z najważniejszych zagadnień w analizie danych. Na szczęście biblioteka pandas w języku Python oferuje kilka prostych i skutecznych metod do radzenia sobie z tym problemem. Jednym z najczęściej stosowanych rozwiązań jest funkcja dropna()
, która pozwala na szybkie usunięcie brakujących wartości z DataFrame
lub Series
. W tym artykule wyjaśnię, jak działa pandas.dropna()
, jakie ma opcje i kiedy warto z niej skorzystać.
Jak działa pandas.dropna()?
Funkcja dropna()
w bibliotece pandas służy do usuwania wierszy lub kolumn, które zawierają brakujące wartości (NaN
lub None
). Można jej używać zarówno na obiektach typu DataFrame
, jak i Series
. Dzięki różnym parametrom możemy dostosować jej działanie do własnych potrzeb.
Podstawowe użycie pandas.dropna()
Oto prosty przykład, który pokazuje, jak usunąć brakujące wartości z ramki danych:
import pandas as pd
# Tworzymy przykładową ramkę danych
df = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [None, 2, 3, 4],
'C': [1, None, 3, 4]
})
print("Oryginalny DataFrame:")
print(df)
# Usuwamy wiersze zawierające NaN
df_cleaned = df.dropna()
print("\nDataFrame po zastosowaniu dropna():")
print(df_cleaned)
W wyniku działania tej funkcji usunięte zostaną wszystkie wiersze, które zawierają choć jedną brakującą wartość.
Najważniejsze parametry funkcji dropna()
Funkcja dropna()
posiada kilka ważnych parametrów, które pozwalają precyzyjnie określić sposób usuwania brakujących danych.
axis
– określa, czy mają być usuwane wiersze (axis=0
, domyślna wartość), czy kolumny (axis=1
).how
– określa, w jakich przypadkach usuwać wiersze lub kolumny:how='any'
– usuwa wiersz lub kolumnę, jeśli występuje w niej co najmniej jeden brakujący element (domyślne zachowanie).how='all'
– usuwa tylko te wiersze lub kolumny, w których wszystkie wartości sąNaN
.subset
– pozwala określić kolumny, które mają być sprawdzane pod kątem brakujących wartości.inplace
– jeśli ustawimyTrue
, to operacja zostanie wykonana bezpośrednio na obiekcie (nie zwróci nowegoDataFrame
).
Usuwanie brakujących wartości tylko z określonych kolumn
Za pomocą parametru subset
możemy skupić się tylko na wybranych kolumnach:
df_cleaned = df.dropna(subset=['A', 'B'])
print(df_cleaned)
W tym przypadku usunięte zostaną tylko te wiersze, w których kolumny A
lub B
zawierają NaN
. Pozostałe kolumny nie będą brane pod uwagę.
Usuwanie brakujących wartości z kolumn
Jeśli zamiast wierszy chcemy usuwać całe kolumny zawierające brakujące wartości, należy zmienić wartość parametru axis
:
df_cleaned = df.dropna(axis=1)
print(df_cleaned)
W powyższym przykładzie usunięte zostaną wszystkie kolumny, które zawierają przynajmniej jedno NaN
.
Usuwanie tylko tych wierszy lub kolumn, które w całości zawierają NaN
Jeśli chcemy usunąć tylko te wiersze lub kolumny, w których każdy element to NaN
, możemy ustawić parametr how="all"
:
df_cleaned = df.dropna(how='all')
print(df_cleaned)
Porównanie różnych ustawień dropna()
Parametry | Opis |
---|---|
dropna() |
Usuwa wiersze z co najmniej jednym NaN |
dropna(axis=1) |
Usuwa kolumny zawierające NaN |
dropna(how='all') |
Usuwa tylko te wiersze, gdzie wszystkie wartości to NaN |
dropna(subset=['A', 'B']) |
Sprawdza NaN tylko w kolumnach A i B |
dropna(inplace=True) |
Usuwa brakujące wartości bez tworzenia nowego obiektu |
Czy zawsze warto usuwać brakujące dane?
Choć dropna()
to bardzo wygodna funkcja, jej nadmierne stosowanie może prowadzić do utraty cennych informacji. W niektórych przypadkach zamiast usuwania warto zastosować inną strategię, np. uzupełnianie brakujących wartości za pomocą fillna()
.
Podsumowanie
Funkcja pandas.dropna()
jest niezwykle przydatnym narzędziem w pracy z danymi, gdy mamy do czynienia z brakującymi wartościami. Potrafi szybko usunąć niekompletne wiersze lub kolumny, co pozwala na łatwiejszą analizę danych. Ważne jest jednak, aby stosować ją świadomie i nie usuwać zbyt wielu informacji bez analizy kontekstu.
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.