how can i unstack without sorting in pandas?

自闭症网瘾萝莉.ら 提交于 2019-12-05 22:49:36

You need unstack by first level and then reindex by unique values of second level, last sort_index of second level of MutiIndex in columns:

df =df.unstack(0).reindex(pd.unique(df.index.get_level_values(1))).sort_index(axis=1,level=1)
print (df)
                  a          b          c        c e      valve
Date     2015-12-06 2015-12-06 2015-12-06 2015-12-06 2015-12-06
Time                                                           
22:00:00      21.26          0       2.62    242.195          0
22:15:00      21.14          0       2.55    255.516          0
22:30:00      21.20          0       2.49    241.261          0
22:45:00      21.18          0       2.48    232.058          0
23:00:00      21.12          0       2.38    239.661          0
23:15:00      21.00          0       2.23    228.324          0
23:30:00      21.13          0       2.29      0.000          0
23:45:00      21.12          0       2.29      0.000          0
0:00:00       21.02          0       2.17      0.000          0
0:15:00       21.09          0       2.13      0.000          0
0:30:00       20.96          0       2.21      0.000          0
0:45:00       20.92          0       2.19      0.000          0
1:00:00       20.99          0       2.13      0.000          0
1:15:00       20.92          0       2.14      0.000          0
1:30:00       20.97          0       2.13      0.000          0
1:45:00       20.85          0       2.11      0.000          0
2:00:00       20.76          0       1.72      0.000          0

EDIT:

idx = (pd.date_range('2015-01-01','2015-01-01 23:45:00', freq='15T') + 
      pd.to_timedelta('22:00:00')).time
df = df.unstack(0).reindex(idx)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!