8

我正在使用 zipline 和 pandas 并已使用该方法将 a 转换pandas.Panel为 a 。如您所见,这是多索引的结果:pandas.DataFrameto_frame()pandas.DataFrame

                                  price
major                     minor                
2008-01-03 00:00:00+00:00 SPY    129.93
                          KO      26.38
                          PEP     64.78
2008-01-04 00:00:00+00:00 SPY    126.74
                          KO      26.43
                          PEP     64.59
2008-01-07 00:00:00+00:00 SPY    126.63
                          KO      27.05
                          PEP     66.10
2008-01-08 00:00:00+00:00 SPY    124.59
                          KO      27.16
                          PEP     66.63

我需要将此框架转换为如下所示:

                          SPY     KO     PEP
2008-01-03 00:00:00+00:00 129.93  26.38  64.78
2008-01-04 00:00:00+00:00 126.74  26.43  64.59
2008-01-07 00:00:00+00:00 126.63  27.05  66.10
2008-01-08 00:00:00+00:00 124.59  27.16  66.63

我已经尝试过 pivot 方法、stack/unstack 等,但这些方法不是我想要的。在这一点上我真的很困惑,任何帮助表示赞赏。

4

1 回答 1

14

因为您已经有一个 MultiIndex,stack并且unstack您想使用它来将行移动到 cols,反之亦然。话虽这么说,unstack应该做你想要完成的事情。如果你有一个 DataFramedf那么df2 = df.unstack('minor')应该做的伎俩。或者更简单地说,因为默认情况下stack/unstack使用最内层,df2 = df.unstack().

于 2013-04-01T20:45:08.580 回答