Pandas Series Sorting

Pandas Series Sorting
In diesem Beitrag werden wir verschiedene Möglichkeiten für die Sortierung einer Pandas -Serie betrachten. Öffnen Sie Python im Terminal mit dem Befehl Python. Sobald das Terminal Python eröffnet, importieren Sie Pandas darin. Pandas ist die Python -Bibliothek, die das Serienobjekt enthält. $ python
Python 2.7.18 (Standard, 8. März 2021, 13:02:45)
[GCC 9.3.0] auf Linux2
Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen ein.
>>> Pandas als PD importieren

Eine Pandas-Serie ist ein eindimensionales Array mit Achsenbezeichnungen (Indizes). Die Etiketten müssen nicht einzigartig sein, aber sie müssen hashabel sein. Das Serienobjekt ermöglicht es dem Benutzer, eine Sammlung ähnlicher Arten von Variablen zu speichern. Es kann jeden Datentyp speichern - Ganzzahl, Schwimmer, Objekte usw. Ein Serienobjekt kann auf verschiedene Weise sortiert werden, wobei verschiedene Parameter in seinem Aufruf verwendet werden. Eine Serie kann mit dem Befehl initialisiert werden PD.Serie. Standardmäßig sortieren Pandas das Serienobjekt in aufsteigender Reihenfolge.

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

Die Sortierung von Werten in absteigender Reihenfolge kann mit dem Parameter erreicht werden aufsteigend. Indem man es einstellt aufsteigend Zu FALSCH, Die Serie kann in absteigender Reihenfolge sortiert werden.

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

Standardmäßig der Anruf an sort_values Gibt eine Kopie des Serienobjekts zurück. Für großgröße Datensätze ist dies unrentabel, da es zur Generierung einer neuen Kopie von Daten führt. Um dies zu vermeiden, kann der Sortiervorgang an Ort am Platz mit dem durchgeführt werden an Ort und Stelle Stichwort. Durch Zuweisen an Ort und Stelle als WAHR, Dadurch sortiert das Serienobjekt, ohne zusätzlichen Platz zu nehmen.

>>> s.sort_values ​​(ASSICEND = FALSE, INSPLACE = TRUE)
>>> s
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

Beachten Sie im obigen Fall, dass keine zusätzliche Kopie der Daten zurückgegeben wird.

Mit Pandas können der Benutzer den Sortieralgorithmus für die Ausführung des Sortiervorgangs auswählen. Man kann den Sortieralgorithmus mit dem festlegen Art Parameter. Der Art Der Parameter nimmt einen der folgenden Werte als Argumente an: Quicksort, Mergesort, Haufen. Standardmäßig wird der QuickSort -Algorithmus verwendet, um die Werte zu sortieren.

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

Manchmal enthält ein Serienobjekt N / A Werte. NA -Werte sind die Werte, die im Serienobjekt fehlen. Die NA -Werte können entweder zu Beginn des Arrays oder im letzten Array platziert werden. Die Position kann mit dem Parameter zugewiesen werden na_position.

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

Der N / A Die Werte können auch vor dem Sortieren fallen gelassen werden. Dies kann mit dem Befehl erreicht werden 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

Während der Art stellen wir fest, dass der Index für das neue sortierte Array gleich bleibt. Der Index kann mit dem Parameter ignoriert werden Ignore_index. Es braucht einen Bool -Wert: WAHR oder FALSCH. Wenn WAHR, Der Index wird in der Ausgabe ignoriert. Standardmäßig ist es FALSCH.

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

Manchmal ist es bequem, eine Schlüsselfunktion zu verwenden, um die Werte zu sortieren. In solchen Fällen kann man die Schlüsselfunktion mit der ausdrücklich übergeben Taste Parameter. Zum Sortieren der Verwendung der Taste Funktion, die Schlüsselfunktion wird vor dem Sortieren auf die Serienwerte angewendet. Betrachten Sie das folgende Beispiel, das nicht verwendet wird Taste Parameter.

>>> s = pd.Serie (Data = ['A', 'B', 'C', 'D'])
>>> s.sort_values ​​()
1 b
3 d
0 a
2 c
DTYPE: Objekt

Die obige Serie kann sortiert werden Taste Parameter wie folgt.

>>> s.sort_values ​​(key = lambda x: x.str.untere())
0 a
1 b
2 c
3 d
DTYPE: Objekt

Anstelle einer Lambda -Funktion, Numpy Funktionen könnten auch als verwendet werden als Taste Funktionen. In der folgenden Funktion wird die sortierte Reihenfolge mit dem NP bewertet.Sin -Funktion, die die berechnete Sinus Wert und verwendet es als Sortierschlüssel.

>>> Numph als NP importieren
>>> s = pd.Serie ([1, 2, 3, 4, 5])
>>> s.sort_values ​​(key = np.Sünde)
4 5
3 4
2 3
0 1
1 2
DTYPE: INT64

Ein Serienobjekt kann auch nach dem Indexwert sortiert werden. Betrachten Sie das folgende Beispiel. Um nach Index zu sortieren, rufen wir an Sort_index.

>>> s = pd.Serie (Daten = [1, 2, 3, 4], Index = ['D', 'B', 'C', 'A'])
>>> s.sort_index ()
A 4
B 2
c 3
d 1
DTYPE: INT64

Das Sortieren nach einem Index ist in jeder Hinsicht wie Sortieren nach Werten, einschließlich der Parameter, mit der Ausnahme, dass er eher auf dem Index als auf den Daten arbeitet.