我有一个数据系列(mean_ ratings),如下所示:
A. Morin 39203.340909
AMMA 53476.250000
Acalli 43798.333333
Adi 41277.500000
Aequare (Gianduja) 45185.000000
...
Zokoko 44615.000000
Zotter 46138.326531
hello cocoa 26162.333333
hexx 35043.333333
twenty-four blackbirds 36877.666667
我用这个代码对这个系列进行排序:
best_ratings = mean_ratings.sort_values(0,ascending=False)
Idilio (Felchlin) 70040.000000
Dole (Guittard) 65662.500000
Chocola'te 64725.000000
Christopher Morel (Felchlin) 63787.500000
Madecasse (Cinagra) 62454.166667
Salgado 61285.000000
Compania de Chocolate (Salgado) 61285.000000
Chloe Chocolat 61285.000000
Oialla by Bojessen (Malmo) 61285.000000
Rozsavolgyi 61285.000000
但我想对其进行排序,首先基于值,然后基于字母索引对相等值进行排序。 我怎样才能同时做到这一点?
您必须在第二种排序中使用
kind='mergesort'
。比如:
df.sort_index().sort_values(ascending=False, kind='mergesort')
传递
.sort_values()
您想要排序的列名称的列表,以在多个级别进行排序!
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html
>>> df = pd.DataFrame({'foo':['a', 'a', 'b', 'c'], 'bar':[2,1,4,3]})
>>> df
foo bar
0 a 2
1 a 1
2 b 4
3 c 3
>>> df.sort_values(["foo", "bar"])
foo bar
1 a 1
0 a 2
2 b 4
3 c 3
>>> df.sort_values(["bar", "foo"])
foo bar
1 a 1
0 a 2
3 c 3
2 b 4