Python 熊猫:使用取消堆栈时多索引的更改顺序

Python 熊猫:使用取消堆栈时多索引的更改顺序,python,pandas,Python,Pandas,我有一个关于取消堆叠列顺序的问题。让我们使用以下数据帧: import pandas as pd df = pd.DataFrame([{'Branch':'A', 'Date':datetime.datetime(2017, 1, 1), 'profit':35}, {'Branch':'B', 'Date':datetime.datetime(2017, 2, 1), 'profit':10}, {'Branch':'A', 'Date':dateti

我有一个关于取消堆叠列顺序的问题。让我们使用以下数据帧:

import pandas as pd
df = pd.DataFrame([{'Branch':'A', 'Date':datetime.datetime(2017, 1, 1), 'profit':35},
          {'Branch':'B', 'Date':datetime.datetime(2017, 2, 1), 'profit':10},
          {'Branch':'A', 'Date':datetime.datetime(2017, 2, 1), 'profit':40},
          {'Branch':'B', 'Date':datetime.datetime(2017, 2, 1), 'profit':20},
          {'Branch':'A', 'Date':datetime.datetime(2017, 3, 1), 'profit':80},
          {'Branch':'B', 'Date':datetime.datetime(2017, 3, 1), 'profit':5}
          ])
df.set_index('Date', inplace=True)
现在,在使用unstack之前,我想做一些数学计算,如下所示:

tmp = df.groupby([pd.TimeGrouper('M'),'Branch']).sum()
pd.DataFrame(tmp.unstack(level='Date'))
是否有任何方法可以使生成的数据帧从第一列中的最新日期(2017-03-31)开始,并按降序对其余列(日期)进行排序

我已经尝试了包括()在内的各种方法,但这似乎不适用于多索引

提前感谢

试试这个:

tmp.unstack('Date').sort_index(axis=1, ascending=False)
输出:

           profit                      
Date   2017-03-31 2017-02-28 2017-01-31
Branch                                 
A            80.0       40.0       35.0
B             5.0       30.0        NaN
试试这个:

tmp.unstack('Date').sort_index(axis=1, ascending=False)
输出:

           profit                      
Date   2017-03-31 2017-02-28 2017-01-31
Branch                                 
A            80.0       40.0       35.0
B             5.0       30.0        NaN