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