我的数据集df
如下:
date high
2018-01-01 -1
2018-01-02 1
2018-01-03 -2
2018-01-04 0
...., ....
2018-12-31 1
在哪里
-2 >= high <= 2
high
始终在-2
和2
之间
我要按以下模式对high
的值进行排序:
首先,将所有0
分组,并按日期排序,以此类推。
按以下顺序对high
值进行排序:
0
1
-1
2
-2
最好具有足够的灵活性,以便我可以根据需要更改订单。
我知道如何通过以下方式对asc
或desc
进行排序:
df.sort_values(by='high', ascending=False)
请帮助我解决如何使用预定值进行排序?
答案 0 :(得分:4)
您需要将high
定义为order
,将order = [0 , 1, -1, 2, -2]
df['high'] = pd.Categorical(df['high'], order)
df.sort_values(['high', 'date'])
定义为Categorical Series
。
date high
3 2018-01-04 0
1 2018-01-02 1
4 2018-12-31 1
0 2018-01-01 -1
2 2018-01-03 -2
输出:
$('input[type="search"]').unwrap(); //removes the empty parent label tag that surrounds this
$('input[type="search"]').attr('aria-label', 'search');