
W pracy z danymi w Pythonie biblioteka pandas jest jednym z najczęściej używanych narzędzi. Jedną z podstawowych operacji, jakie możemy wykonać na danych, jest znalezienie unikalnych wartości w kolumnie lub całej serii danych. Do tego celu służy metoda pandas.unique()
. Jak dokładnie działa? Jak jej używać? Przyjrzyjmy się temu bliżej.
Co to jest pandas.unique()?
Metoda pandas.unique()
służy do zwracania unikalnych wartości z obiektu typu Series
lub tablicy numpy
. Jest to funkcja szeroko wykorzystywana w analizie danych, gdy chcemy zrozumieć różnorodność wartości w zbiorze danych.
Składnia pandas.unique()
Najprostsza składnia funkcji wygląda następująco:
pandas.unique(values)
Gdzie values
to jednowymiarowa tablica, np. obiekt pandas.Series
.
Przykład zastosowania pandas.unique()
Aby zobaczyć, jak działa pandas.unique()
, najpierw załaduję bibliotekę pandas
i stworzę przykładowy zbiór danych.
import pandas as pd
# Tworzymy przykładową serię danych
serie = pd.Series([3, 1, 2, 3, 3, 4, 1, 2, 5])
# Zastosowanie pandas.unique()
unikalne_wartosci = pd.unique(serie)
print(unikalne_wartosci)
Wynikiem tego działania będzie tablica NumPy zawierająca unikalne wartości:
[3 1 2 4 5]
Jak widać, funkcja usunęła duplikaty i zwróciła tylko jedną instancję każdej wartości.
Zastosowanie w obiektach DataFrame
Chociaż metoda pandas.unique()
działa bezpośrednio na obiektach Series
, możemy ją również zastosować na kolumnach w obiekcie DataFrame
.
df = pd.DataFrame({
'A': [1, 1, 2, 2, 3, 4, 4],
'B': ['a', 'b', 'b', 'c', 'a', 'a', 'd']
})
unikalne_w_kolumnie_A = pd.unique(df['A'])
print(unikalne_w_kolumnie_A)
Powyższy kod zwróci:
[1 2 3 4]
Metoda sprawdza się doskonale, gdy chcemy szybko znaleźć unikalne wartości w jednej kolumnie tabeli.
Częste błędy i ich unikanie
Podczas korzystania z pandas.unique()
warto pamiętać o kilku kwestiach:
- Funkcja działa tylko na listach jednowymiarowych – nie można jej używać bezpośrednio na całym DataFrame.
- Nie zachowuje kolejności sortowania – zwracane wartości pojawiają się w kolejności ich wystąpienia.
- Działa tylko na tablicach
numpy
i seriachpandas
– jeśli spróbujesz podać np. słownik, funkcja zwróci błąd.
Alternatywa – metoda drop_duplicates()
Jeżeli pracujemy na całym DataFrame
i chcemy znaleźć unikalne wartości w kontekście wielu kolumn, warto zapoznać się z metodą drop_duplicates()
.
df_unique = df.drop_duplicates()
print(df_unique)
W przeciwieństwie do pandas.unique()
, funkcja ta usuwa duplikaty z całej tabeli, dając wynik w postaci nowego DataFrame
.
Podsumowanie
Metoda pandas.unique()
to szybkie i skuteczne rozwiązanie, gdy potrzebujemy uzyskać unikalne wartości z serii danych lub kolumny DataFrame. Jest łatwa w użyciu i doskonale sprawdza się w podstawowej eksploracji danych. Jeśli jednak chcemy analizować unikalność całych wierszy w tabeli, warto sięgnąć po alternatywę w postaci drop_duplicates()
.
Metoda | Zastosowanie |
---|---|
pandas.unique() |
Unikalne wartości z pojedynczej kolumny lub serii |
drop_duplicates() |
Usuwanie duplikatów w całym DataFrame |
Znając te metody, możemy efektywnie analizować dane i usuwać powtarzające się wartości, co przydaje się w codziennych projektach analitycznych.
„` Inny ciekawy artykuł: Jak działa pandas value_counts 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.