
Pracując z danymi w języku Python, często spotykam się z koniecznością usunięcia duplikatów w ramach struktury DataFrame
. Na szczęście biblioteka pandas oferuje wygodną metodę drop_duplicates()
, która pozwala na szybkie i efektywne zarządzanie zdublowanymi danymi. W tym artykule przyjrzę się dokładnie temu, jak działa pandas.drop_duplicates()
w języku Python, oraz pokażę przykłady jego zastosowania.
Podstawowe działanie pandas.drop_duplicates()
Metoda drop_duplicates()
służy do usuwania duplikatów z obiektu DataFrame
. Domyślnie działa na wszystkich kolumnach i zachowuje pierwszy napotkany unikatowy wiersz, kasując pozostałe powtórzenia.
Podstawowa składnia tej metody wygląda tak:
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
Gdzie:
subset
– określa, dla których kolumn sprawdzane są duplikaty. Jeśli nie zostanie podane, metoda analizuje wszystkie kolumny.keep
– wskazuje, które duplikaty zostaną zachowane:'first'
– zachowuje pierwszy wystąpienie (domyślnie).'last'
– zachowuje ostatnie wystąpienie.False
– usuwa wszystkie duplikaty.
inplace
– jeśli ustawione naTrue
, modyfikuje DataFrame w miejscu, zamiast zwracać nowy obiekt.ignore_index
– jeśliTrue
, resetuje indeks wynikowego DataFrame.
Przykładowe użycie pandas.drop_duplicates()
Sprawdźmy, jak to działa w praktyce. Załaduję przykładowy zbiór danych:
import pandas as pd
# Tworzymy DataFrame z duplikatami
data = {'Imię': ['Anna', 'Tomasz', 'Anna', 'Kasia', 'Tomasz'],
'Wiek': [25, 30, 25, 27, 30],
'Miasto': ['Warszawa', 'Poznań', 'Warszawa', 'Gdańsk', 'Poznań']}
df = pd.DataFrame(data)
print("Oryginalny DataFrame:\n", df)
# Usuwamy duplikaty
df_unique = df.drop_duplicates()
print("\nDataFrame po usunięciu duplikatów:\n", df_unique)
Rezultat pokazuje, że metoda usuwa zbędne powtórzenia, zachowując pierwszy wiersz z danymi.
Usuwanie duplikatów tylko dla określonych kolumn
Co jeśli chcemy sprawdzić duplikaty tylko w oparciu o jedną lub dwie kolumny? Wystarczy podać parametr subset
:
# Usunięcie duplikatów bazując tylko na kolumnie "Imię"
df_subset = df.drop_duplicates(subset=['Imię'])
print("\nDataFrame po usunięciu duplikatów w kolumnie 'Imię':\n", df_subset)
W ten sposób pandas sprawdza powtórzenia tylko w określonych kolumnach, a nie w całym DataFrame.
Usunięcie wszystkich duplikatów
Jeśli chcemy pozbyć się wszystkich powielonych rekordów (tzn. zachować tylko te, które nie mają żadnego sobowtóra), ustawiamy keep=False
:
df_no_duplicates = df.drop_duplicates(keep=False)
print("\nDataFrame po usunięciu wszystkich duplikatów:\n", df_no_duplicates)
To użyteczne rozwiązanie w sytuacjach, gdy interesują mnie jedynie te dane, które nie mają żadnych odpowiedników.
Modyfikacja DataFrame „w miejscu”
Zamiast tworzyć nową zmienną, mogę zmodyfikować istniejący DataFrame za pomocą opcji inplace=True
:
df.drop_duplicates(inplace=True)
print("\nDataFrame zmodyfikowany w miejscu:\n", df)
Teraz df
zawiera już unikalne wartości bez potrzeby przypisywania wyniku.
Resetowanie indeksu po usunięciu duplikatów
Po usunięciu duplikatów zauważam, że indeksy mogą wyglądać chaotycznie. Możemy je zresetować:
df_reset = df.drop_duplicates(ignore_index=True)
print("\nDataFrame z resetowanym indeksem:\n", df_reset)
Przy ustawieniu ignore_index=True
, pandas przypisuje nowe indeksy zaczynając od 0.
Podsumowanie
Metoda drop_duplicates()
w pandas jest niezwykle użyteczna, gdy chcemy szybko pozbyć się powtarzających się danych w DataFrame. Oferuje wiele opcji dostosowania zachowania, w tym:
- Usuwanie duplikatów na podstawie całości lub wybranych kolumn.
- Zachowywanie pierwszego, ostatniego lub żadnego z duplikatów.
- Możliwość modyfikacji struktury danych w miejscu.
- Resetowanie indeksów dla lepszej czytelności.
Zastosowanie tej metody pozwala znacząco poprawić jakość i organizację danych, co bezpośrednio wpływa na lepszą efektywność analiz w Pythonie.
„` Inny ciekawy artykuł: Jak działa pandas nunique w języku Python? Przykład zastosowaniaOpanuj 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.