首页 > 解决方案 > 如何对多个值的熊猫数据框进行排序

问题描述

我有以下熊猫数据框

 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)

但是,它没有给我想要的输出。

标签: pythonpandas

解决方案


我认为最好的方法是确保将 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)

推荐阅读