Pandas排序,按照指定顺序自定义排序.md
Pandas的sort_index和sort_values
我们知道pandas有sort_index和sort_values两个方法进行排序,我们通过案例来回顾下
>>> datalist = [{'name': 'PC', 'value': 0.38}, {'name': 'PAD', 'value': 0.13}, {'name': 'PHONE', 'value': 0.49 }]
>>> df = pd.DataFrame(datalist)
>>> print(df)
0 PC 0.38
1 PAD 0.13
2 PHONE 0.49
>>> print(df.sort_values(by=['value', 'name'], ascending=False))
name value
2 PHONE 0.49
0 PC 0.38
1 PAD 0.13
>>> newdf= df.set_index('name')
>>> print(newdf)
value
name
PC 0.38
PAD 0.13
PHONE 0.49
>>> print(newdf.sort_index(ascending=False))
value
name
PHONE 0.49
PC 0.38
PAD 0.13
但是在实际使用中,我们想要按照一些特定的顺序来进行排序,可以尝试如下的方法
>>> sort_list = ['PC', 'PHONE', 'PAD']
>>> print(newdf.loc[sort_list])
value
name
PC 0.38
PHONE 0.49
PAD 0.13
等等,这个loc是排序么?不是哈,这个是取出特定行。但确实是实现了自定义排序。
转载请注明:IPCPU-网络之路 » Pandas排序,按照指定顺序自定义排序