如何在熊猫中按预定顺序排序

时间:2019-07-29 18:48:37

标签: python-3.x pandas dataframe

我的数据集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始终在-22之间

我要按以下模式对high的值进行排序:

首先,将所有0分组,并按日期排序,以此类推。

按以下顺序对high值进行排序:

0
1
-1
2
-2

最好具有足够的灵活性,以便我可以根据需要更改订单。

我知道如何通过以下方式对ascdesc进行排序:

df.sort_values(by='high', ascending=False)

请帮助我解决如何使用预定值进行排序?

1 个答案:

答案 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');