J'utilise souvent le tri, mais il y a quelques différences selon le type, je vais donc le résumer. Je vais résumer chacun par liste, type de dictionnaire, série et DataFrame.
Je pense qu'il y a d'autres façons de le faire. Si vous avez des recommandations, veuillez nous en informer.
Je pense que la méthode de tri est la plus simple. Si vous connaissez également la méthode triée, vous pouvez répondre de manière flexible. Notez que la méthode triée n'apporte aucune modification à la liste elle-même et renvoie la liste triée en tant que valeur de retour.
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]
Utilisez la fonction triée également utilisée dans la liste. Une chose à noter à propos du type de dictionnaire est que la liste est renvoyée en tant que valeur de retour.
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)]
Je pense qu'il est facile d'imaginer l'utiliser comme suit.
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
Ci-après, le type de dictionnaire sera expliqué dans le format de sortie de l'instruction for.
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)
Je pourrais le faire avec ça, mais je ne peux pas. .. BUG/ENH: sort_values(by=index_label, axis=1)
Je vois, je ne peux pas le faire maintenant. Il semble que ce sera possible avec la prochaine mise à jour majeure de la version. Date prévue le 31 août 2017 (au 15 juillet 2016)
Trier le dictionnaire Python (type dict) par valeur de valeur Trier COMMENT (document) Astuces Python: je souhaite trier le contenu d'un type dict (dictionnaire) pandas.Series.sort_index pandas.Series.sort_values pandas.DataFrame.sort_index pandas.DataFrame.sort_values
Recommended Posts