如何将此时间序列多索引数据帧重新整形为“转置”?

时间:2017-03-22 17:23:12

标签: python pandas dataframe

不是真正寻找转置(我不认为),但我想不出更好的描述符。

我有这个数据框:

ticker     2282 JP Equity                 3401 JP Equity          
field               OP007   OP008          OP007   OP008   
2017-02-01         0.5193  1.0732          0.647  1.8618  

这是一个1值的时间序列,所以不是真正的时间序列。我想要这个:

                  OP007   OP008
2282 JP Equity   0.5193  1.0732
3401 JP Equity    0.647  1.8618

将1级列标题作为行索引,将2级列标题作为新列索引。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

使用stack

df.stack('ticker')

或者

df.stack(0)

<强> 演示

df = pd.DataFrame(
    [[0.5193, 1.0732, 0.647, 1.8618]],
    pd.to_datetime(['2017-02-01']),
    pd.MultiIndex.from_product([
            ['2282 JP Equity', '3401 JP Equity'],
            ['OP007', 'OP008']
        ], names=['ticker', 'field'])
)

df

ticker     2282 JP Equity         3401 JP Equity        
field               OP007   OP008          OP007   OP008
2017-02-01         0.5193  1.0732          0.647  1.8618

然后

df.stack('ticker')

field                       OP007   OP008
           ticker                        
2017-02-01 2282 JP Equity  0.5193  1.0732
           3401 JP Equity  0.6470  1.8618