Die Inhalte zum Sortieren von DataFrame waren nur auf Japanisch einfach, daher habe ich sie zusammengefasst. Ich werde auf Orte eingehen, an denen nicht viel Nachfrage besteht.
Bestätigt für die Arbeit mit Pandas 0.17.1.
Dies sind die Daten, die dieses Mal verwendet werden.
sort.py
import numpy as np
import pandas as pd
if __name__ == "__main__":
df = pd.DataFrame([[1, 3, "Hokkaido"], [4, 5, "Tokio"], [3, 5, "Saitama"], [6, 9, "Präfektur Osaka"], [1, 1, "Präfektur Aomori"]])
df.index = ["Suzuki", "Tanaka", "Kimura", "Endo", "Yoshida"]
df.columns = ["Gegenstand 1", "Punkt 2", "Punkt 3"]
Gegenstand 1 | Punkt 2 | Punkt 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Tanaka | 4 | 5 | Tokio |
Kimura | 3 | 5 | Saitama |
Endo | 6 | 9 | Präfektur Osaka |
Yoshida | 1 | 1 | Präfektur Aomori |
Wenn Sie versuchen, diese Tabelle nach Punkt 1 zu ordnen,
df.sort_values (by = [" item 1 "], ascending = True)
Durch
Gegenstand 1 | Punkt 2 | Punkt 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Yoshida | 1 | 1 | Präfektur Aomori |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokio |
Endo | 6 | 9 | Präfektur Osaka |
Sie sind in aufsteigender Reihenfolge von Punkt 1 (in aufsteigender Reihenfolge des Wertes) angeordnet. Wenn die Werte von Punkt 1 gleich sind, werden sie gemäß der Reihenfolge in der Originaltabelle angeordnet. Wenn Sie zu diesem Zeitpunkt "aufsteigend = wahr" in "aufsteigend = falsch" ändern, wird dies in absteigender Reihenfolge (in absteigender Reihenfolge des Werts) angeordnet.
Wenn Sie sich auf Artikel 2 anstatt auf die ursprüngliche Bestellung verlassen möchten
df.sort_values (by = [" item 1 "," item 2 "], ascending = True)
Durch
Gegenstand 1 | Punkt 2 | Punkt 3 | |
---|---|---|---|
Yoshida | 1 | 1 | Präfektur Aomori |
Suzuki | 1 | 3 | Hokkaido |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokio |
Endo | 6 | 9 | Präfektur Osaka |
Es wird sein.
Es ist ein wenig anomal, aber wenn Sie Artikel 1 in aufsteigender Reihenfolge und Artikel 2 in absteigender Reihenfolge sortieren möchten
df.sort_values (by = [" item 1 "," item 2 "], ascending = [True, False])
Sie können nach sortieren.
Sortieren Sie als Nächstes Element 3. Wie vorher
df.sort_values (by = [" item 3 "], ascending = True)
Dann
Gegenstand 1 | Punkt 2 | Punkt 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Kimura | 3 | 5 | Saitama |
Endo | 6 | 9 | Präfektur Osaka |
Tanaka | 4 | 5 | Tokio |
Yoshida | 1 | 1 | Präfektur Aomori |
Es wird sortiert, aber wahrscheinlich nicht das, was Sie wollen. Hier ist beispielsweise eine Liste in der Reihenfolge, in der Sie sie arrangieren möchten
"tdhk = [" Hokkaido "," Präfektur Aomori "," Präfektur Saitama "," Tokio ", Präfektur Osaka"] "
Wie
df [" item 3 "] = pd.Categorical (df [" item 3 "], tdhk)
Wenn Sie einfügen, wird es in der Reihenfolge der Liste sortiert.
Gegenstand 1 | Punkt 2 | Punkt 3 | |
---|---|---|---|
Suzuki | 1 | 3 | Hokkaido |
Yoshida | 1 | 1 | Präfektur Aomori |
Kimura | 3 | 5 | Saitama |
Tanaka | 4 | 5 | Tokio |
Endo | 6 | 9 | Präfektur Osaka |
Recommended Posts