Ordinamento della serie Pandas

Ordinamento della serie Pandas
In questo post, esamineremo diversi modi per ordinare una serie di panda. Apri Python nel terminale usando il comando pitone. Una volta che il terminale apre Python, importa panda in esso. Panda è la libreria Python che contiene l'oggetto della serie. $ Python
Python 2.7.18 (impostazione predefinita, 8 marzo 2021, 13:02:45)
[GCC 9.3.0] su Linux2
Digita "Help", "Copyright", "Credit" o "Licenza" per ulteriori informazioni.
>>> Importa panda come PD

Una serie Pandas è un array unidimensionale con etichette degli assi (indici). Le etichette non devono essere uniche, ma devono essere hashabili. L'oggetto serie consente all'utente di archiviare una raccolta di tipi simili di variabili. Può archiviare qualsiasi tipo di dati: intero, galleggiante, oggetti, ecc. Un oggetto in serie può essere ordinato in più modi utilizzando parametri diversi nella sua chiamata. Una serie può essere inizializzata usando il comando pd.Serie. Per impostazione predefinita, i panda ordinano l'oggetto serie in ordine crescente.

>>> s = pd.Serie ([6, 3, 8, 2, 9])
>>> s.sort_values ​​()
3 2
1 3
0 6
2 8
4 9
dType: int64

L'ordinamento dei valori in ordine decrescente può essere ottenuto usando il parametro ascendente. IMPOSTANDO ascendente A Falso, La serie può essere ordinata in ordine decrescente.

>>> s.sort_values ​​(ascending = false)
4 9
2 8
0 6
1 3
3 2
dType: int64

Per impostazione predefinita, la chiamata a sort_values restituisce una copia dell'oggetto serie. Per i set di dati di grandi dimensioni, ciò non è possibile poiché si traduce nella generazione di una nuova copia dei dati. Per evitarlo, l'operazione di smistamento può essere eseguita sul posto utilizzando il a posto parola chiave. Assegnando a posto COME VERO, Rende inplace l'ordinamento dell'oggetto della serie senza assumere spazio aggiuntivo.

>>> s.sort_values ​​(ascending = false, inplace = true)
>>> s
4 9
2 8
0 6
1 3
3 2
dType: int64

Nel caso sopra, si noti che non viene restituita alcuna copia aggiuntiva.

I panda consentono all'utente di scegliere l'algoritmo di ordinamento per eseguire l'operazione di ordinamento. Si può impostare l'algoritmo di ordinamento usando il Tipo parametro. IL Tipo Il parametro prende uno dei seguenti valori come argomenti: QuickSort, Mergesort, Heapsort. Per impostazione predefinita, l'algoritmo QuickSort viene utilizzato per ordinare i valori.

>>> s.sort_values ​​(kind = 'QuickSort')
3 2
1 3
0 6
2 8
4 9
dType: int64

A volte, un oggetto in serie contiene N / A valori. I valori di Na sono i valori che mancano nell'oggetto serie. I valori NA possono essere posizionati all'inizio dell'array o all'ultimo array. La posizione può essere assegnata usando il parametro na_position.

>>> s = pd.Serie ([6, 3, 8, NP.nan, 2, 9])
>>> s.sort_values ​​(na_position = 'ultimo')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
3 nan
dType: float64

IL N / A I valori potrebbero anche essere eliminati prima dell'ordinamento. Questo può essere ottenuto usando il comando Dropna.

>>> s = pd.Serie ([6, 3, 8, NP.nan, 2, 9])
>>> s.dropna ().sort_values ​​(na_position = 'ultimo')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
dType: float64

Durante il tipo, osserviamo che l'indice rimane lo stesso per il nuovo array ordinato. L'indice può essere ignorato usando il parametro Ignore_index. Ci vuole un valore bool: VERO O Falso. Se VERO, L'indice viene ignorato nell'output. Per impostazione predefinita, lo è Falso.

>>> 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

A volte è conveniente utilizzare una funzione chiave per ordinare i valori. In tali casi, è possibile passare esplicitamente la funzione chiave usando il chiave parametro. Per l'ordinamento usando il file chiave funzione, la funzione chiave viene applicata ai valori della serie prima dell'ordinamento. Considera l'esempio seguente, che non usa chiave parametri.

>>> s = pd.Serie (data = ['a', 'b', 'c', 'd'])
>>> s.sort_values ​​()
1 b
3 d
0 a
2 c
dType: oggetto

La serie sopra può essere ordinata usando chiave parametro come segue.

>>> s.sort_values ​​(key = lambda x: x.str.inferiore())
0 a
1 b
2 c
3 d
dType: oggetto

Invece di una funzione Lambda, numpy Le funzioni potrebbero anche essere usate come chiave funzioni. Nella funzione seguente, l'ordine ordinato viene valutato utilizzando NP.funzione sin che calcola il seno valore e lo usa come chiave di smistamento.

>>> Importa Numpy come NP
>>> s = pd.Serie ([1, 2, 3, 4, 5])
>>> s.sort_values ​​(key = np.peccato)
4 5
3 4
2 3
0 1
1 2
dType: int64

Un oggetto Serie può anche essere ordinato dal valore dell'indice. Considera l'esempio seguente. Per ordinare per indice, chiamiamo sort_index.

>>> s = pd.Serie (data = [1, 2, 3, 4], indice = ['d', 'b', 'c', 'a'])
>>> s.sort_index ()
un 4
B 2
C 3
D 1
dType: int64

L'ordinamento per un indice è lo stesso in tutti i modi come l'ordinamento per valori, inclusi i parametri, tranne per il fatto che opera sull'indice anziché sui dati.