как отсортировать панды данных по нескольким значениям - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть следующий pandas dataframe

 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

Я хочу расположить датафрейм по 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)

Но это не дает мне желаемого результата.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Просто попробуйте:

df = df.sort_values(“Hourly_bucket”).sort_values(“Tank”).sort_values(“Date”)
0 голосов
/ 22 сентября 2018

Я думаю, что лучший способ - это убедиться, что df.Date и df.Hourly_bucket рассматриваются как дата-время.Затем вы должны установить 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...