
Jednym z najczęstszych problemów, z jakimi można się spotkać podczas analizy danych w Pythonie, jest wykrywanie i eliminowanie duplikatów. Biblioteka Pandas dostarcza świetne narzędzie do tego celu – metodę duplicated(). Dzięki niej mogę łatwo sprawdzić, które wiersze w moim DataFrame są powielone. W tym artykule pokażę dokładnie, jak działa pandas.duplicated(), jakie ma opcje i jak można ją używać w praktyce.
Co robi pandas.duplicated()?
Metoda duplicated() w bibliotece Pandas zwraca serię wartości logicznych (True lub False), wskazując, które wiersze pojawiły się wcześniej w zbiorze danych i można je uznać za duplikaty. Domyślnie funkcja porównuje wszystkie kolumny, ale można ją dostosować, aby sprawdzała tylko wybrane.
Podstawowy przykład działania
Przyjrzyjmy się prostemu przykładowi, aby zobaczyć, jak działa duplicated():
import pandas as pd
# Tworzenie przykładowego DataFrame
data = {'ID': [1, 2, 3, 4, 5, 3],
'Name': ['Anna', 'Marcin', 'Kasia', 'Tomek', 'Ola', 'Kasia']}
df = pd.DataFrame(data)
# Sprawdzenie zduplikowanych wierszy
print(df.duplicated())
Wynik:
0 False
1 False
2 False
3 False
4 False
5 True
dtype: bool
Oznacza to, że wiersz o indeksie 5 został oznaczony jako duplikat, ponieważ wiersz z wartością „Kasia” w kolumnie Name i wartością 3 w kolumnie ID już wcześniej występował.
Opcje dostępne w pandas.duplicated()
Metoda duplicated() przyjmuje kilka argumentów, które pozwalają dostosować sposób wykrywania duplikatów.
keep – decyduje, które duplikaty zostają oznaczone
Argument keep ma trzy możliwe wartości:
'first'– (domyślnie) oznacza jako duplikaty wszystkie powtarzające się wiersze, oprócz pierwszego wystąpienia.'last'– oznacza wszystkie powtarzające się wiersze, oprócz ostatniego wystąpienia.False– oznacza wszystkie zduplikowane wiersze (nie pozostawia żadnego oryginalnego wystąpienia).
Przykład:
print(df.duplicated(keep='last'))
Spowoduje oznaczenie jako duplikatów pierwszych, a nie ostatnich wystąpień powtarzających się wierszy.
subset – sprawdzanie duplikatów tylko w wybranych kolumnach
Jeśli chcę sprawdzić duplikaty tylko dla konkretnej kolumny, mogę skorzystać z argumentu subset. Załóżmy, że interesuje mnie powielenie wartości w kolumnie Name:
print(df.duplicated(subset=['Name']))
W tym przypadku Pandas sprawdzi tylko kolumnę Name, ignorując inne wartości w wierszach.
Usuwanie duplikatów po ich wykryciu
Po zidentyfikowaniu nadmiarowych rekordów najczęściej chcę się ich pozbyć. Do tego służy metoda drop_duplicates(), która działa podobnie jak duplicated(), ale zamiast zwracać wartości logiczne, usuwa powtarzające się wiersze.
Przykład usunięcia duplikatów:
df_cleaned = df.drop_duplicates()
print(df_cleaned)
Jeśli chciałbym uwzględnić tylko wybrany zestaw kolumn, mogę skorzystać z argumentu subset:
df_cleaned = df.drop_duplicates(subset=['Name'])
Przykładowa tabela prezentująca działanie
Poniżej znajduje się tabela pokazująca przykładowe dane oraz wynik działania duplicated():
| Index | ID | Name | duplicated() |
|---|---|---|---|
| 0 | 1 | Anna | False |
| 1 | 2 | Marcin | False |
| 2 | 3 | Kasia | False |
| 3 | 4 | Tomek | False |
| 4 | 5 | Ola | False |
| 5 | 3 | Kasia | True |
Podsumowanie
Metoda pandas.duplicated() to bardzo przydatne narzędzie do wykrywania duplikatów w DataFrame. Dzięki niej mogę:
- Szybko sprawdzić, które wiersze są zduplikowane.
- Decydować, czy zostawiam pierwsze czy ostatnie wystąpienie.
- Fokusować się tylko na wybranych kolumnach.
- Łatwo usunąć powielone rekordy.
Dzięki temu praca z danymi staje się bardziej przejrzysta i efektywna, a wyniki analizy są precyzyjne. Jeśli często pracuję z dużymi zbiorami danych, znajomość duplicated() to obowiązkowy punkt w arsenale narzędzi do przetwarzania danych w Pandas.
Inny ciekawy artykuł:
Jak działa pandas t (transpose) 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.

