Pandas Series -sortering

Pandas Series -sortering
I dette innlegget vil vi se på forskjellige måter å sortere en Pandas -serie. Åpne Python i terminalen ved hjelp av kommandoen Python. Når terminalen åpner Python, importerer du pandaer i den. Pandas er Python -biblioteket som inneholder serieobjektet. $ python
Python 2.7.18 (standard, 8. mars 2021, 13:02:45)
[GCC 9.3.0] på linux2
Skriv "Hjelp", "Copyright", "Credits" eller "License" for mer informasjon.
>>> Importer pandaer som PD

En Pandas-serie er en endimensjonal matrise med Axis-etiketter (indekser). Etikettene trenger ikke være unike, men de må være hasjerbare. Serieobjektet lar brukeren lagre en samling lignende typer variabler. Den kan lagre hvilken som helst datatype - heltall, float, objekter osv. Et serieobjekt kan sorteres på flere måter ved å bruke forskjellige parametere i samtalen. En serie kan initialiseres ved hjelp av kommandoen PD.Serie. Som standard sorterer Pandas serieobjektet i stigende rekkefølge.

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

Sortering av verdier i synkende rekkefølge kan oppnås ved bruk av parameteren Stigende. Ved å sette Stigende til Falsk, Serien kan sorteres i synkende rekkefølge.

>>> s.sort_values ​​(stigende = falsk)
4 9
2 8
0 6
1. 3
3 2
DTTYPE: INT64

Som standard, samtalen til sort_values Returnerer en kopi av serieobjektet. For datasett i stor størrelse er dette uunngåelig siden det resulterer i å generere en ny kopi av data. For å unngå det, kan sorteringsoperasjonen utføres på stedet ved hjelp av på plass nøkkelord. Ved å tildele på plass som ekte, Det får serieobjektet på plass uten å ta ekstra plass.

>>> s.sort_values ​​(stigende = falsk, inplace = true)
>>> s
4 9
2 8
0 6
1. 3
3 2
DTTYPE: INT64

I ovennevnte tilfelle, merk at ingen ekstra kopi av data returneres.

Pandaer lar brukeren velge sorteringsalgoritmen for utførelse av sorteringoperasjonen. Man kan stille sorteringsalgoritmen ved hjelp av snill parameter. De snill Parameter tar en av følgende verdier som argumenter: Quicksort, MergeSort, Heapsort. Som standard brukes Quicksort -algoritmen til å sortere verdiene.

>>> s.sort_values ​​(kind = 'Quicksort')
3 2
1. 3
0 6
2 8
4 9
DTTYPE: INT64

Noen ganger inneholder et serieobjekt Na verdier. Na -verdier er verdiene som mangler i serieobjektet. NA -verdiene kan plasseres enten i begynnelsen av matrisen eller den siste av matrisen. Posisjonen kan tilordnes ved hjelp av parameteren na_posisjon.

>>> S = PD.Serie ([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

De Na Verdier kan også slippes før sortering. Dette kan oppnås ved hjelp av kommandoen Dropna.

>>> S = PD.Serie ([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

Under den typen observerer vi at indeksen forblir den samme for den nye sorterte matrisen. Indeksen kan ignoreres ved hjelp av parameteren ignorere_index. Det tar en boolverdi: ekte eller Falsk. Hvis ekte, Indeksen blir ignorert i utgangen. Som standard er det Falsk.

>>> s.sort_values ​​(ignore_index = true, na_position = 'first')
0 Nan
1 2.0
2 3.0
3 6.0
4 8.0
5 9.0
dtype: float64

Noen ganger er det praktisk å bruke en nøkkelfunksjon for å sortere verdiene. I slike tilfeller kan man eksplisitt passere nøkkelfunksjonen ved å bruke nøkkel parameter. For sortering ved hjelp av nøkkel funksjon, nøkkelfunksjonen brukes på serieverdiene før sortering. Tenk på eksemplet nedenfor, som ikke bruker nøkkel parametere.

>>> S = PD.Serie (data = ['a', 'b', 'c', 'd'])
>>> s.sort_values ​​()
1 f
3 d
0 a
2 c
dtype: objekt

Ovennevnte serie kan sorteres ved hjelp av nøkkel parameter som følger.

>>> s.sort_values ​​(nøkkel = lambda x: x.str.Nedre())
0 a
1 f
2 c
3 d
dtype: objekt

I stedet for en lambda -funksjon, numpy Funksjoner kan også brukes som nøkkel funksjoner. I funksjonen nedenfor blir den sorterte rekkefølgen evaluert ved bruk av NP.SIN -funksjonen som beregner sinus verdi og bruker den som en sorteringsnøkkel.

>>> import numpy som NP
>>> S = PD.Serie ([1, 2, 3, 4, 5])
>>> s.sort_values ​​(nøkkel = np.synd)
4 5
3 4
2 3
0 1
1 2
DTTYPE: INT64

Et serieobjekt kan også sorteres etter indeksverdien. Tenk på eksemplet nedenfor. For å sortere etter indeks, ringer vi sort_index.

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

Sortering etter en indeks er den samme på alle måter som sortering etter verdier, inkludert parametrene, bortsett fra at den fungerer på indeksen i stedet for dataene.