将多级列添加到单级 pandas 数据框

Adding a multi-level column to a single-level pandas dataframe

我有一个单级 pandas 数据框:

df = pd.DataFrame({"x":[0,0,0],"y":[0,0,0]})

看起来像这样:

    x   y
0   0   0
1   0   0
2   0   0

现在我想向这个数据框添加一个多级列“z”(有两个子列“z1 和”z2),所以它看起来像这样:

    x   y   z
            z1  z2
0   0   0   1   2
1   0   0   1   2
2   0   0   1   2

首先我们让现有的列多索引:

df.columns = pd.MultiIndex.from_arrays([df.columns,['']*len(df.columns)])

然后添加由元组索引的新的

df[('z','z1')] = [1,1,1]
df[('z','z2')] = [2,2,2]
df

获得

    x   y   z
            z1  z2
0   0   0   1   2
1   0   0   1   2
2   0   0   1   2