python multiindex赋值

时间:2017-08-01 20:20:53

标签: python python-2.7 pandas

我遇到了多索引分配的问题,并希望将值存储在下面突出显示

我有一个名为 df_x 的函数,它是一个数据框,看起来像

print df_x

serial    P1       P2       P3

5         21       32       35
10        33       45       76
15        65       99       563 

我希望它存储如下

例如级别[0] 的值 alpha

df1 = pd.DataFrame(columns= df_x.columns)

它应该在 df1 上创建一个多索引,以便

打印 df1 应该看起来像

print df1


alpha    serial    5     10    15

         P1        21    33    65

         P2        32    45    99

         P3        35    76    563 

但是,我正在努力在原始df_x数据帧上创建多索引

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

选项0

pd.concat([df_x], keys=['alpha'])

serial    P1  P2   P3
alpha 5   21  32   35
      10  33  45   76
      15  65  99  563

选项1

pd.DataFrame(
    df_x.values,
    [['alpha'] * len(df_x), df_x.index],
    df_x.columns
)

serial    P1  P2   P3
alpha 5   21  32   35
      10  33  45   76
      15  65  99  563

选项2

df_x.set_index(
    pd.MultiIndex.from_product(
        [['alpha'], df_x.index], names=[None, df_x.index.name]
    )
)

设置

df_x = pd.DataFrame(**{
    'columns': pd.Index(['P1', 'P2', 'P3'], name='serial'),
    'data': [[21, 32, 35], [33, 45, 76], [65, 99, 563]],
    'index': [5, 10, 15]})