2017-08-31 134 views
2
Out[1015]: gp2 
department MOBILE  QA  TA  WEB MOBILE  QA  TA WEB 
      minutes minutes minutes minutes growth growth growth growth 
period                 
2016-12-24  NaN  NaN 140.0 400.0 NaN NaN 0.0 260.0 
2016-12-25  NaN  NaN  NaN 80.0 NaN NaN NaN -320.0 
2016-12-26  NaN  NaN  NaN 20.0 NaN NaN NaN -60.0 
2016-12-27  NaN 45.0  NaN 180.0 NaN 25.0 NaN 135.0 
2016-12-28 600.0  NaN  NaN 15.0 420.0 NaN NaN -585.0 
...   ...  ...  ...  ... ... ... ... ... 
2017-01-03  NaN  NaN  NaN 80.0 NaN NaN NaN -110.0 
2017-01-04 20.0  NaN  NaN  NaN -60.0 NaN NaN NaN 
2017-02-01 120.0  NaN  NaN  NaN 100.0 NaN NaN NaN 
2017-02-02 45.0  NaN  NaN  NaN -75.0 NaN NaN NaN 
2017-02-03  NaN 45.0  NaN 30.0 NaN 0.0 NaN -15.0 

我需要MOBILE.minutes和MOBILE.growth一个接一个。排序熊猫数据帧的列

我想这

In [1019]:gp2.columns = gp2.columns.sort_values() 
In [1020]: gp2 
Out[1020]: 
department MOBILE    QA    TA   WEB   
      growth minutes growth minutes growth minutes growth minutes 
period                 
2016-12-24 NaN  NaN 140.0 400.0 NaN  NaN 0.0 260.0 
2016-12-25 NaN  NaN NaN 80.0 NaN  NaN NaN -320.0 
2016-12-26 NaN  NaN NaN 20.0 NaN  NaN NaN -60.0 
2016-12-27 NaN 45.0 NaN 180.0 NaN 25.0 NaN 135.0 
2016-12-28 600.0  NaN NaN 15.0 420.0  NaN NaN -585.0 
...   ...  ... ...  ... ...  ... ...  ... 
2017-01-03 NaN  NaN NaN 80.0 NaN  NaN NaN -110.0 
2017-01-04 20.0  NaN NaN  NaN -60.0  NaN NaN  NaN 
2017-02-01 120.0  NaN NaN  NaN 100.0  NaN NaN  NaN 
2017-02-02 45.0  NaN NaN  NaN -75.0  NaN NaN  NaN 
2017-02-03 NaN 45.0 NaN 30.0 NaN  0.0 NaN -15.0 

这只是排序的列,但并没有为它们分配正确的价值观。

回答

6

只需使用df.sort_index

df = df.sort_index(level=[0, 1], axis=1) 
print(df) 

      MOBILE    QA    TA   WEB   
      growth minutes growth minutes growth minutes growth minutes 
period                 
2016-12-24 NaN  NaN NaN  NaN 0.0 140.0 260.0 400.0 
2016-12-25 NaN  NaN NaN  NaN NaN  NaN -320.0 80.0 
2016-12-26 NaN  NaN NaN  NaN NaN  NaN -60.0 20.0 
2016-12-27 NaN  NaN 25.0 45.0 NaN  NaN 135.0 180.0 
2016-12-28 420.0 600.0 NaN  NaN NaN  NaN -585.0 15.0 
2017-01-03 NaN  NaN NaN  NaN NaN  NaN -110.0 80.0 
2017-01-04 -60.0 20.0 NaN  NaN NaN  NaN NaN  NaN 
2017-02-01 100.0 120.0 NaN  NaN NaN  NaN NaN  NaN 
2017-02-02 -75.0 45.0 NaN  NaN NaN  NaN NaN  NaN 
2017-02-03 NaN  NaN 0.0 45.0 NaN  NaN -15.0 30.0