Python 多索引数据帧和.diff()

Python 多索引数据帧和.diff(),python,pandas,multi-index,Python,Pandas,Multi Index,假设我有以下多索引数据帧: A B Date Code 01-01-2017 s1 1 2 s2 3 1 01-02-2017 s1 2 2 s2 3 3 与前面讨论的不同,我不希望.diff(1)对具有相同日期的值进行操作并在每个新日期重置,而是希望.diff(1)提供以下输出:

假设我有以下多索引数据帧:

                     A    B
Date        Code     
01-01-2017  s1       1    2
            s2       3    1
01-02-2017  s1       2    2    
            s2       3    3
与前面讨论的不同,我不希望
.diff(1)
对具有相同日期的值进行操作并在每个新日期重置,而是希望
.diff(1)
提供以下输出:

                     A    B
Date        Code     
01-01-2017  s1       Nan  Nan
            s2       Nan  Nan
01-02-2017  s1       1    0    
            s2       2    1
也就是说,
.diff(1)
通过由0级索引的不同值指定的块进行差异,而不是像建议的链接那样在块内进行差异。 换句话说,我想用条目减去这两个矩阵:

|2    2|  _  |1    2| 
|3    3|     |3    1|
您可以通过第二级使用:

因为如果使用第一级:

df = df.groupby(level=0).diff()
print (df)
                   A    B
Date       Code          
01-01-2017 s1    NaN  NaN
           s2    2.0 -1.0
01-02-2017 s1    NaN  NaN
           s2    1.0  1.0

我们是否应该假设已订购0级索引?
df = df.groupby(level=0).diff()
print (df)
                   A    B
Date       Code          
01-01-2017 s1    NaN  NaN
           s2    2.0 -1.0
01-02-2017 s1    NaN  NaN
           s2    1.0  1.0