как отсортировать панды данных по нескольким значениям

1

У меня есть следующий панда данных

 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)

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

  • 0
    Какой столбец вы хотите отсортировать? Вы можете сортировать только 1 столбец за раз.
Теги:
pandas

2 ответа

0

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

df = df.sort_values("Hourly_bucket").sort_values("Tank").sort_values("Date")
0

Я думаю, что лучший способ заключить, что 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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню