编程语言
首页 > 编程语言> > python – 将MultiIndex数据帧重塑为表格格式

python – 将MultiIndex数据帧重塑为表格格式

作者:互联网

给出一个MultiIndex示例:

idx = pd.MultiIndex.from_product([[0, 1, 2], ['a', 'b', 'c', 'd']])    
df = pd.DataFrame({'value' : np.arange(12)}, index=idx)

df

     value
0 a      0
  b      1
  c      2
  d      3
1 a      4
  b      5
  c      6
  d      7
2 a      8
  b      9
  c     10
  d     11

我怎样才能有效地将其转换为表格格式?

   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

此外,鉴于上面的数据帧,我如何将其恢复到其原始的多索引状态?

我尝试过的:

pd.DataFrame(df.values.reshape(-1, df.index.levels[1].size), 
             index=df.index.levels[0], columns=df.index.levels[1])

哪个适用于第一个问题,但我不确定如何从那里恢复原状.

解决方法:

使用unstack和堆栈

In [5359]: dff = df['value'].unstack()

In [5360]: dff
Out[5360]:
   a  b   c   d
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11

In [5361]: dff.stack().to_frame('name')
Out[5361]:
     name
0 a     0
  b     1
  c     2
  d     3
1 a     4
  b     5
  c     6
  d     7
2 a     8
  b     9
  c    10
  d    11

标签:multi-index,python,pandas,dataframe
来源: https://codeday.me/bug/20190929/1830187.html