
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 (True
dla rosnącego,False
dla malejącego).inplace
– jeśli ustawione naTrue
, sortowanie zostanie wykonane na miejscu, bez zwracania nowegoDataFrame
.na_position
– określa, czy wartościNaN
mają 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 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.