У меня есть следующий панда данных
Code Date Tank Hourly_bucket
0 2018-08-01 1 00:00:01 - 00:30:00
7 2018-08-02 1 08:00:01 - 08:30:00
8 2018-08-02 1 09:00:00 - 09:30:00
1 2018-08-01 1 04:30:01 - 05:00:00
2 2018-08-01 2 01:00:01 - 01:30:00
5 2018-08-01 2 10:00:01 - 10:30:00
6 2018-08-01 2 11:00:01 - 11:30:00
Я хочу упорядочить dataframe по Date,Tank and Hourly_bucket
Следующим является мой желаемый фрейм данных
Code Date Tank Hourly_bucket
0 2018-08-01 1 00:00:01 - 00:30:00
1 2018-08-01 1 04:30:01 - 05:00:00
2 2018-08-01 2 01:00:01 - 01:30:00
5 2018-08-01 2 10:00:01 - 10:30:00
7 2018-08-01 2 11:00:01 - 11:30:00
4 2018-08-02 1 00:00:00 - 00:30:00
8 2018-08-02 1 08:00:01 - 08:30:00
я пытался
df.sort_values(['Tank','Hourly_bucket','Date'], ascending = True)
Но это не дает мне желаемого результата.
Просто попробуйте:
df = df.sort_values("Hourly_bucket").sort_values("Tank").sort_values("Date")
Я думаю, что лучший способ заключить, что df.Date и df.Hourly_bucket рассматриваются как серии datetime. Затем вам нужно установить inplace = True в противном случае, изменения не будут сохранены.
df.Hourly_bucket = df.Hourly_bucket.str.slice(0, 8)
df.Hourly_bucket = pd.to_datetime(df.Hourly_bucket)
df.Date = pd.to_datetime(df.Date)
df.sort_values(['Date', 'Tank','Hourly_bucket'], ascending =True, inplace=True)