【发布时间】:2018-04-06 15:00:48
【问题描述】:
所以我在订购我的 Dataframe 时遇到了一点麻烦,我尝试使用 this 问题,但没有设法让它工作。我有一个 Dataframe nudf 像这样:
date level_1 0
0 2016-10-01 00:00:00 0.0 74.00
1 2016-10-01 00:30:00 0.5 72
2 2016-10-01 01:00:00 1.0 70
3 2016-10-01 01:30:00 1.5 64
4 2016-10-01 02:00:00 2.0 63
5 2016-10-01 02:30:00 2.5 60
... ... ... ...
19003 2017-09-31 21:30:00 21.5 129
19004 2017-09-31 22:00:00 22.0 118
19005 2017-09-31 22:30:00 22.5 106
19006 2017-09-31 23:00:00 23.0 84
19007 2017-09-31 23:30:00 23.5 76
我想做的是按外部月份顺序对行进行排序:
[4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3]
这是过去 12 个月,从上个月开始。我想忽略年份并按照上面的顺序排列每个月的行块。
例如,给定以下行:
0 2016-02-01 00:00:00 0.0 74.00
1 2016-02-01 00:30:00 0.5 72
2 2016-03-01 01:00:00 1.0 70
3 2016-03-01 01:30:00 1.5 64
4 2017-04-01 02:00:00 2.0 63
5 2017-04-01 02:30:00 2.5 60
结果应该是:
4 2017-04-01 02:00:00 2.0 63
5 2017-04-01 02:30:00 2.5 60
0 2016-02-01 00:00:00 0.0 74.00
1 2016-02-01 00:30:00 0.5 72
2 2016-03-01 01:00:00 1.0 70
3 2016-03-01 01:30:00 1.5 64
我试过了:
nudf['month'] = nudf.apply(lambda row: row.date.month, axis=1)
nudf.month = nudf.month.astype("category")
nudf.month.cat.set_categories([x.month for x in reversed(_get_last_x_months(12))], inplace=True)
nudf.sort_values(["month"], inplace=True)
但不维护日期和时间顺序。
【问题讨论】: