在pandas中对具有多个条件的数据进行排序

Cec*_*lia 1 python datetime date pandas jupyter-notebook

我有这样的数据:

ID   daea01               date02                  ID_NUM
AAA  2000-01-01 00:00:00  2000-02-02 01:01:01     12345
BBB  2000-05-01 00:00:00  2000-03-02 01:01:01     52489
AAA  2000-05-01 00:00:00  2000-01-02 01:01:01     12548
AAA  2000-01-01 00:00:00  2000-02-01 01:01:01     78954
...
AAA  2000-01-01 00:00:00  2000-08-02 01:01:01     12345
BBB  2000-05-01 00:00:00  2000-06-02 01:01:01     52489
AAA  2000-05-01 00:00:00  2000-06-02 01:01:01     12548
BBB  2000-01-01 00:00:00  2000-02-02 01:01:01     78954
...
Run Code Online (Sandbox Code Playgroud)

我想对数据进行排序:

  1. 按 AAA 和 BBB 排序

  2. 对于每个 AAA 或 BBB,从最早的日期时间开始订购 date01

  3. 对于 AAA 和 date01 的组合,对 date02 进行排序(同一日期时间组一起并从最旧的日期时间开始排序)

这是预期的结果:

ID   daea01               date02                  ID_NUM
AAA  2000-01-01 00:00:00  2000-02-01 01:01:01     78954
AAA  2000-01-01 00:00:00  2000-02-02 01:01:01     12345
AAA  2000-01-01 00:00:00  2000-08-02 01:01:01     12345
AAA  2000-05-01 00:00:00  2000-01-02 01:01:01     12548
AAA  2000-05-01 00:00:00  2000-06-02 01:01:01     12548
BBB  2000-01-01 00:00:00  2000-02-02 01:01:01     78954
BBB  2000-05-01 00:00:00  2000-03-02 01:01:01     52489
BBB  2000-05-01 00:00:00  2000-06-02 01:01:01     52489
...
Run Code Online (Sandbox Code Playgroud)

对 Python 非常陌生,提前致谢。

Sch*_*tor 5

您可以像这样对 Dataframe 进行排序:

df.sort_values(by=['ID', 'daea01','date02'])
Run Code Online (Sandbox Code Playgroud)