Jak działa pandas sort_values w języku Python? Przykład zastosowania

Jak działa pandas sort_values w języku Python? Przykład zastosowania
„`html

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 na True, sortowanie zostanie wykonane na miejscu, bez zwracania nowego DataFrame.
  • na_position – określa, czy wartości NaN mają być umieszczane na początku ('first') czy na końcu ('last').
  • ignore_index – jeśli ustawione na True, 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
KajoDataSpace