
Sortowanie danych to jedna z podstawowych operacji wykonywanych na zbiorach danych. Jeśli pracujesz w Pythonie z biblioteką pandas, możesz korzystać z funkcji sort_values(), która pozwala na wygodne i efektywne sortowanie danych w ramach DataFrame. Poniżej wyjaśnię, jak działa ta funkcja, omówię jej parametry i przedstawię kilka praktycznych przykładów.
Podstawowe użycie pandas.sort_values()
Funkcja sort_values() pozwala sortować wiersze w DataFrame na podstawie jednej lub wielu kolumn. Przyjrzyjmy się podstawowej składni:
df.sort_values(by='kolumna')
Powyższe wywołanie sortuje DataFrame według wartości w kolumnie kolumna. Domyślnie sortowanie odbywa się rosnąco.
Najważniejsze argumenty funkcji
Aby lepiej zrozumieć działanie funkcji sort_values(), warto przyjrzeć się jej najważniejszym parametrom:
by– określa kolumnę lub kolumny, według których ma być wykonane sortowanie.ascending– definiuje kierunek sortowania (Truedla rosnącego,Falsedla malejącego).inplace– jeśli ustawione naTrue, sortowanie zostanie wykonane na miejscu, bez zwracania nowegoDataFrame.na_position– określa, czy wartościNaNmają być umieszczane na początku ('first') czy na końcu ('last').ignore_index– jeśli ustawione naTrue, po sortowaniu indeksy zostaną zresetowane.
Sortowanie po jednej kolumnie
Załóżmy, że mamy następujący DataFrame:
import pandas as pd
data = {'Imię': ['Anna', 'Marek', 'Zofia', 'Jan'],
'Wiek': [29, 35, 23, 40]}
df = pd.DataFrame(data)
Chcemy posortować dane według wieku:
df_sorted = df.sort_values(by='Wiek')
Otrzymamy następującą tabelę:
| Imię | Wiek |
|---|---|
| Zofia | 23 |
| Anna | 29 |
| Marek | 35 |
| Jan | 40 |
Sortowanie w kolejności malejącej
Jeśli chcemy uzyskać odwrotny porządek, wystarczy ustawić ascending=False:
df_sorted = df.sort_values(by='Wiek', ascending=False)
W tym przypadku Jan znajdzie się na pierwszym miejscu.
Sortowanie według wielu kolumn
Co zrobić, jeśli chcemy posortować dane według więcej niż jednej kolumny? Wystarczy podać listę kolumn w parametrze by:
df_sorted = df.sort_values(by=['Wiek', 'Imię'])
Najpierw dane zostaną posortowane według wieku, a jeśli wystąpią duplikaty, kolejność zostanie ustalona alfabetycznie według imienia.
Obsługa wartości NaN
Jeśli w danych występują puste wartości (NaN), możemy zdecydować, gdzie mają się znajdować. Domyślnie są one umieszczone na końcu:
data = {'Imię': ['Anna', 'Marek', 'Zofia', 'Jan', 'Kasia'],
'Wiek': [29, 35, 23, 40, None]}
df = pd.DataFrame(data)
df_sorted = df.sort_values(by='Wiek', na_position='first')
Teraz NaN znajdzie się na początku wyniku.
Sortowanie bez zachowywania oryginalnych indeksów
Podczas sortowania indeksy pozostają bez zmian, ale możemy je zresetować:
df_sorted = df.sort_values(by='Wiek', ignore_index=True)
Teraz indeksy zostaną przepisane od zera do n-1.
Sortowanie z aktualizacją oryginalnego DataFrame
Jeżeli chcemy, aby sortowanie zostało zastosowane bez konieczności tworzenia nowej zmiennej, możemy użyć inplace=True:
df.sort_values(by='Wiek', inplace=True)
Teraz df zawiera już posortowane dane.
Podsumowanie
Funkcja sort_values() w pandas to niezwykle użyteczne narzędzie do sortowania danych. Dzięki niej możemy:
- Sortować dane po jednej lub wielu kolumnach.
- Ustalić kolejność rosnącą lub malejącą.
- Obsługiwać wartości
NaN. - Zdecydować, czy zmiany mają być wprowadzone bezpośrednio w oryginalnym
DataFrame.
Teraz już wiesz, jak działa pandas sort_values w języku Python. Przykład zastosowania tej funkcji pokazuje, jak łatwo manipulować danymi i dostosowywać je do własnych potrzeb.
Inny ciekawy artykuł:
Jak działa pandas filter 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.

