在多级索引中透视一级索引

时间:2016-04-12 10:17:27

标签: pandas

假设我有一个带有多索引的数据框:

                   col1   col2
 date        id    
 2016-04-05   A     100     99
 2016-04-05   B     101     98
 2016-04-05   C     102     95
 ...
 2016-04-12   A      90     65
 2016-04-12   B      91     62
 2016-04-12   C      93     64

如何使用col1并转动' id'索引的级别为索引仅为' date'这些列是' id'?

的值
       date     A     B     C 
 2016-04-05   100   101   102
 2016-04-06    80    87    83
 ...
 2016-04-12    90    91    93

由于

1 个答案:

答案 0 :(得分:1)

我认为您可以先drop col2,然后unstack droplevelrename_axisreset_index

df = df.drop('col2', axis=1).unstack('id')
df.columns = df.columns.droplevel(0)
df = df.rename_axis(None, axis=1).reset_index()
print df
        date    A    B    C
0 2016-04-05  100  101  102
1 2016-04-12   90   91   93

使用pivot的下一个解决方案:

print df.reset_index()
        .pivot(index='date', columns='id', values='col1')
        .rename_axis(None, axis=1)
        .reset_index()

        date    A    B    C
0 2016-04-05  100  101  102
1 2016-04-12   90   91   93