在熊猫中使用MultiIndex.from_tuples添加附加级别

莫妮卡

我正在尝试在python的多级索引中添加额外的级别。我的数据框如下所示。

df1=pd.DataFrame(np.array([['A',1, 2, 3], ['B',-4,5 , -6], ['d',7, 0, 9]]), columns=['D','a', 'b', 'c'])

我使用以下代码添加了多个级别

df1.columns=pd.MultiIndex.from_tuples((("first","D"),("first",'a'),("second","b"),("second","c")))

现在,我想从不同的数据帧在第一和第二级之间添加另一级

df2=pd.DataFrame(np.array([['D',1], ['a',2 ], ['b',1],['c',3]]), columns=['11','22'])

所需的输出应如下所示。我想知道如何实现这一目标。非常感谢您的提前帮助。

 first  second

 1  2   1  3

 D  a   b   c

A   1   2   3
B   -4  5   -6
d   7   0   9
广晃

尝试:

# cache the original columns
columns = df1.columns

# force columns to RangeIndex
df1.columns = np.arange(df1.shape[1])

# rename the columns with the new name
df1.columns = pd.MultiIndex.from_tuples([
    (x,a,y) for (x,y),a in zip(columns, [1,2,1,3])
])

输出:

  first     second    
      1   2      1   3
      D   a      b   c
0     A   1      2   3
1     B  -4      5  -6
2     d   7      0   9

无可辩驳的是,直接重新分配列会发出警告,并且没有执行任何操作,因此复出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章