Ich benutze oft die Sortierung, aber es gibt einige Unterschiede je nach Typ, deshalb werde ich es zusammenfassen. Ich werde jede nach Liste, Wörterbuchtyp, Serie und DataFrame zusammenfassen.
Ich denke, es gibt andere Möglichkeiten, dies zu tun. Wenn Sie Empfehlungen haben, teilen Sie uns dies bitte mit.
Ich denke, die Sortiermethode ist die einfachste. Wenn Sie auch die sortierte Methode kennen, können Sie flexibel reagieren. Beachten Sie, dass die sortierte Methode keine Änderungen an der Liste selbst vornimmt und die sortierte Liste als Rückgabewert zurückgibt.
lst = [3, 5, 2, 9, 0, 4]
lst.sort()
print(lst)
#=> [0, 2, 3, 4, 5, 9]
lst = [3, 5, 2, 9, 0, 4]
lst = sorted(lst)
print(lst)
#=> [0, 2, 3, 4, 5, 9]
lst_rvs = [3, 5, 2, 9, 0, 4]
lst_rvs.sort()
lst_rvs.reverse()
print(lst_rvs)
#=> [9, 5, 4, 3, 2, 0]
lst = [3, 5, 2, 9, 0, 4]
lst = sorted(lst, key=lambda x: -x)
print(lst)
#=> [9, 5, 4, 3, 2, 0]
Verwenden Sie die sortierte Funktion, die auch in der Liste verwendet wurde. Beim Wörterbuchtyp ist zu beachten, dass die Liste als Rückgabewert zurückgegeben wird.
dct = { 2: 3, 3: 4, 1: 2, 0: 8, 4: 2 }
dct = sorted(dct.items())
print(dct)
#=> [(0, 8), (1, 2), (2, 3), (3, 4), (4, 2)]
Ich denke, es ist leicht vorstellbar, es wie folgt zu verwenden.
dct = { 2: 3, 3: 4, 1: 2, 0: 8, 4: 2 }
for k, v in sorted(dct.items()):
print(str(k) + ": " + str(v))
0: 8
1: 2
2: 3
3: 4
4: 2
Im Folgenden wird der Wörterbuchtyp im Ausgabeformat der for-Anweisung erläutert.
dct = {2: 3, 3: 4, 1: 2, 0: 8, 4: 2}
for k, v in sorted(dct.items(), key=lambda x: -x[0]):
print(str(k) + ": " + str(v))
4: 2
3: 4
2: 3
1: 2
0: 8
dct = {2: 3, 3: 4, 1: 2, 0: 8, 4: 2}
for k, v in sorted(dct.items(), key=lambda x: x[1]):
print(str(k) + ": " + str(v))
1: 2
4: 2
2: 3
3: 4
0: 8
dct = {2: 3, 3: 4, 1: 2, 0: 8, 4: 2}
for k, v in sorted(dct.items(), key=lambda x: -x[1]):
print(str(k) + ": " + str(v))
0: 8
3: 4
2: 3
1: 2
4: 2
Series (pandas)
from pandas import Series
ser = Series({2: 3, 3: 4, 1: 2, 0: 8, 4: 2})
ser = ser.sort_index()
print(ser)
0 8
1 2
2 3
3 4
4 2
dtype: int64
from pandas import Series
ser = Series({2: 3, 3: 4, 1: 2, 0: 8, 4: 2})
ser = ser.sort_index(ascending=False)
print(ser)
4 2
3 4
2 3
1 2
0 8
dtype: int64
from pandas import Series
ser = Series({2: 3, 3: 4, 1: 2, 0: 8, 4: 2})
ser = ser.sort_values()
print(ser)
1 2
4 2
2 3
3 4
0 8
dtype: int64
from pandas import Series
ser = Series({2: 3, 3: 4, 1: 2, 0: 8, 4: 2})
ser = ser.sort_values(ascending=False)
print(ser)
0 8
3 4
2 3
4 2
1 2
dtype: int64
DataFrame (pandas)
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_index()
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 4 3
HP Attack Defence Special Attack Special Defence Speed
1 9 3 1 6 4 3
2 3 4 2 8 2 3
3 3 5 1 9 4 2
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_index(ascending=False)
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 3 3
HP Attack Defence Special Attack Special Defence Speed
3 3 5 1 9 4 2
2 3 4 2 8 2 3
1 9 3 1 6 3 3
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_index(axis=1)
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 4 3
Attack Defence HP Special Attack Special Defence Speed
2 4 2 3 8 2 3
3 5 1 3 9 4 2
1 3 1 9 6 4 3
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_index(axis=1, ascending=False)
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 3 3
Speed Special Defence Special Attack HP Defence Attack
2 3 2 8 3 2 4
3 2 4 9 3 1 5
1 3 3 6 9 1 3
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_values(by="Special Defence")
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 3 3
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
1 9 3 1 6 3 3
3 3 5 1 9 4 2
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2,3,1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_values(by="Special Defence", ascending=False)
print(df)
HP Attack Defence Special Attack Special Defence Speed
2 3 4 2 8 2 3
3 3 5 1 9 4 2
1 9 3 1 6 3 3
HP Attack Defence Special Attack Special Defence Speed
3 3 5 1 9 4 2
1 9 3 1 6 3 3
2 3 4 2 8 2 3
from pandas import DataFrame
df = DataFrame([[3, 4, 2, 8, 2, 3], [3, 5, 1, 9, 4, 2], [9, 3, 1, 6, 3, 3]], index=[2, 3, 1], columns=["HP", "Attack", "Defence", "Special Attack", "Special Defence", "Speed"])
print(df)
df = df.sort_values(by=3, axis=1)
print(df)
ValueError: When sorting by column, axis must be 0 (rows)
Ich könnte es damit machen, aber ich kann nicht. .. BUG/ENH: sort_values(by=index_label, axis=1)
Ich verstehe, ich kann es jetzt nicht tun. Es scheint, dass es mit dem nächsten größeren Versions-Upgrade möglich sein wird. Geplanter Termin 31. August 2017 (Stand 15. Juli 2016)
Python-Wörterbuch (Diktattyp) nach Wert sortieren Sort HOW TO (Dokument) Python-Tipps: Ich möchte den Inhalt eines Diktattyps (Wörterbuchs) sortieren pandas.Series.sort_index pandas.Series.sort_values pandas.DataFrame.sort_index pandas.DataFrame.sort_values
Recommended Posts