Sortowanie serii pandy

Sortowanie serii pandy
W tym poście przyjrzymy się różnym sposobom sortowania serii pandy. Otwórz Python w terminalu za pomocą polecenia pyton. Gdy terminal otworzy Python, importuj pandy w nim. Pandy to biblioteka Python, która zawiera obiekt serii. $ Python
Python 2.7.18 (domyślnie, 8 marca 2021, 13:02:45)
[GCC 9.3.0] na Linux2
Wpisz „Pomoc”, „Copyright”, „Kredyty” lub „Licencja”, aby uzyskać więcej informacji.
>>> Importuj pandy jako PD

Seria pandaS to jednowymiarowa tablica z etykietami osi (indeksy). Etykiety nie muszą być wyjątkowe, ale muszą być haszalne. Obiekt serii pozwala użytkownikowi przechowywać zbiór podobnych rodzajów zmiennych. Może przechowywać dowolny typ danych - liczba całkowita, pływakowa, obiekty itp. Obiekt szeregowy można sortować na wiele sposobów za pomocą różnych parametrów w swoim wywołaniu. Serię można zainicjować za pomocą polecenia Pd.Seria. Domyślnie pandy sortują obiekt szeregowy w kolejności rosnącej.

>>> s = PD.Seria ([6, 3, 8, 2, 9])
>>> s.sort_values ​​()
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

Sortowanie wartości w kolejności malejącej można osiągnąć za pomocą parametru wznoszący się. Przez ustawienie wznoszący się Do FAŁSZ, Serię można sortować w kolejności malejącej.

>>> s.sort_values ​​(Ascending = False)
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

Domyślnie wezwanie sort_values Zwraca kopię obiektu serii. W przypadku dużych zestawów danych jest to nieopłacalne, ponieważ powoduje generowanie nowej kopii danych. Aby tego uniknąć, operację sortowania można wykonać na miejscu za pomocą w miejscu Słowo kluczowe. Przypisując w miejscu Jak PRAWDA, To sprawia, że ​​obiekt serii jest sortowany na miejscu, nie zajmując się dodatkowym miejscem.

>>> s.sort_values ​​(Ascending = false, inplace = true)
>>> s
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

W powyższym przypadku pamiętaj, że nie zwracana jest dodatkowa kopia danych.

Pandy pozwalają użytkownikowi wybrać algorytm sortowania do wykonywania operacji sortowania. Można ustawić algorytm sortowania za pomocą Uprzejmy parametr. Uprzejmy Parametr przyjmuje jedną z następujących wartości jako argumenty: Quicksort, scales, heapsort. Domyślnie algorytm Quicksort jest używany do sortowania wartości.

>>> s.sort_values ​​(cind = 'quicksort')
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

Czasami zawiera obiekt szeregowy Na wartości. Wartości NA to wartości, których brakuje w obiekcie szeregowym. Wartości Na można umieścić albo na początku tablicy lub na ostatnim tablicy. Pozycję można przypisać za pomocą parametru na_position.

>>> s = PD.Seria ([6, 3, 8, NP.Nan, 2, 9])
>>> s.sort_values ​​(na_position = „last”)
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
3 Nan
Dtype: Float64

Na Wartości można również upuścić przed sortowaniem. Można to osiągnąć za pomocą polecenia Dropna.

>>> s = PD.Seria ([6, 3, 8, NP.Nan, 2, 9])
>>> s.Dropna ().sort_values ​​(na_position = „last”)
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
Dtype: Float64

W tym rodzaju obserwujemy, że indeks pozostaje taki sam dla nowej sortowanej tablicy. Indeks można zignorować za pomocą parametru ignore_index. Wymaga wartości bool: PRAWDA Lub FAŁSZ. Jeśli PRAWDA, indeks jest ignorowany na wyjściu. Domyślnie tak jest FAŁSZ.

>>> s.sort_values ​​(ignor_index = true, na_position = 'first')
0 nan
1 2.0
2 3.0
3 6.0
48.0
5 9.0
Dtype: Float64

Czasami wygodne jest użycie funkcji kluczowej do sortowania wartości. W takich przypadkach można wyraźnie przekazać kluczową funkcję za pomocą klucz parametr. Do sortowania za pomocą klucz funkcja, kluczowa funkcja jest stosowana do wartości szeregowych przed sortowaniem. Rozważ poniższy przykład, który nie używa klucz parametry.

>>> s = PD.Seria (data = [„a”, „b”, „c”, „d”])
>>> s.sort_values ​​()
1 b
3 d
0 a
2 c
DTYPE: Object

Powyższą serię można sortować za pomocą klucz Parametr w następujący sposób.

>>> s.sort_values ​​(key = lambda x: x.str.niżej())
0 a
1 b
2 c
3 d
DTYPE: Object

Zamiast funkcji Lambda, Numpy Funkcje można również użyć jako klucz Funkcje. W poniższej funkcji sortowana kolejność jest oceniana za pomocą NP.funkcja grzechu, która oblicza sinus wartość i używa go jako klucza sortowania.

>>> Importuj Numpy jako NP
>>> s = PD.Seria ([1, 2, 3, 4, 5])
>>> s.sort_values ​​(key = np.grzech)
4 5
3 4
2 3
0 1
1 2
DTYPE: INT64

Obiekt szeregowy może być również sortowany według wartości indeksu. Rozważ poniższy przykład. Aby sortować według indeksu, dzwonimy sort_index.

>>> s = PD.Seria (data = [1, 2, 3, 4], indeks = ['d', 'b', 'c', 'a'])
>>> s.sort_index ()
4
B 2
C 3
D 1
DTYPE: INT64

Sortowanie według indeksu jest takie same pod każdym względem, jak sortowanie według wartości, w tym parametry, z wyjątkiem tego, że działa na indeksie, a nie na danych.