
Sortowanie danych w Pandas to kluczowy element analizy danych. Jedną z najczęściej używanych metod jest sort_index()
, która pozwala na uporządkowanie indeksów naszego obiektu DataFrame lub Series. Dzięki temu łatwiej jest przeprowadzać wyszukiwania oraz lepiej organizować dane. W tym artykule wyjaśnię, jak działa pandas.sort_index()
w języku Python oraz podam kilka praktycznych przykładów.
Co to jest pandas.sort_index()?
Metoda sort_index()
w Pandas służy do sortowania indeksów w obiekcie DataFrame lub Series. Możemy sortować w sposób rosnący, malejący, według określonej osi oraz z wykorzystaniem różnych algorytmów sortujących.
Podstawowa składnia tej metody wygląda tak:
DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False)
Oto wyjaśnienie najważniejszych parametrów:
axis
– określa, czy sortujemy według indeksów wierszy (0
), czy kolumn (1
).level
– umożliwia sortowanie na określonym poziomie indeksu w przypadku MultiIndex.ascending
– jeśliTrue
, sortowanie jest rosnące; jeśliFalse
, malejące.inplace
– jeśliTrue
, modyfikuje DataFrame bez zwracania nowego obiektu.kind
– wskazuje algorytm sortowania (quicksort
,mergesort
,heapsort
istable
).na_position
– określa położenie wartości NaN ('first'
lub'last'
).
Podstawowy przykład użycia
Przyjrzyjmy się prostemu przykładowi sortowania indeksów w DataFrame.
import pandas as pd
# Tworzymy przykładowy DataFrame
data = {'Wartość': [100, 200, 300]}
df = pd.DataFrame(data, index=['b', 'c', 'a'])
print("Przed sortowaniem:")
print(df)
# Sortowanie indeksów
df_sorted = df.sort_index()
print("\nPo sortowaniu:")
print(df_sorted)
Wynik:
Przed sortowaniem:
Wartość
b 100
c 200
a 300
Po sortowaniu:
Wartość
a 300
b 100
c 200
Jak widać, indeksy zostały uporządkowane alfabetycznie.
Sortowanie indeksów w kolejności malejącej
Jeżeli chcemy posortować indeksy w kolejności malejącej, wystarczy ustawić parametr ascending=False
:
df_sorted_desc = df.sort_index(ascending=False)
print(df_sorted_desc)
Wynik:
Wartość
c 200
b 100
a 300
Teraz indeksy są posortowane w kolejności odwrotnej.
Sortowanie według indeksu kolumn
Domyślnie metoda sort_index()
sortuje według indeksów wierszy (axis=0
), ale można także posortować kolumny ustawiając axis=1
:
df_sorted_columns = df.sort_index(axis=1)
print(df_sorted_columns)
Jeżeli DataFrame ma więcej niż jedną kolumnę, zostaną one posortowane w kolejności alfabetycznej.
Sortowanie indeksów w MultiIndex
Pandas obsługuje również złożone indeksy (MultiIndex). W takim przypadku warto skorzystać z parametru level
, aby posortować tylko wybrany poziom indeksu.
arrays = [['A', 'A', 'B', 'B'], [2, 1, 2, 1]]
index = pd.MultiIndex.from_arrays(arrays, names=('Litera', 'Liczba'))
df_multi = pd.DataFrame({'Dane': [10, 20, 30, 40]}, index=index)
print("Przed sortowaniem:")
print(df_multi)
# Sortowanie indeksu według drugiego poziomu
df_multi_sorted = df_multi.sort_index(level=1)
print("\nPo sortowaniu według 'Liczba':")
print(df_multi_sorted)
Przed sortowaniem:
Dane
Litera Liczba
A 2 10
A 1 20
B 2 30
B 1 40
Po sortowaniu:
Dane
Litera Liczba
A 1 20
A 2 10
B 1 40
B 2 30
Dzięki temu można kontrolować sortowanie w bardziej zaawansowany sposób.
Sortowanie indeksów z wartościami NaN
Jeśli indeksy zawierają wartości NaN
, można określić, czy mają być na początku, czy na końcu wyniku sortowania.
df_nan = pd.DataFrame({'Wartość': [100, 200, 300]}, index=['b', None, 'a'])
# Sortowanie z NaN na końcu
df_nan_sorted_last = df_nan.sort_index(na_position='last')
print(df_nan_sorted_last)
To pozwala kontrolować pozycję brakujących wartości.
Podsumowanie
Metoda sort_index()
w Pandas to potężne narzędzie, które pozwala w szybki i elastyczny sposób sortować dane według indeksów. Najważniejsze możliwości tej funkcji to:
- Sortowanie indeksów wierszy i kolumn.
- Obsługa MultiIndex i sortowanie poszczególnych poziomów.
- Kontrola kolejności sortowania (rosnąco/malejąco).
- Obsługa wartości NaN.
Dzięki jej zastosowaniu organizowanie i analiza danych staje się znacznie bardziej przejrzysta.
„` Inny ciekawy artykuł: Jak działa pandas sort_values 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.