有一个多列数据帧,如下所示
x y
a b a b
1 21 54 4 7
2 18 23 2 4
3 10 54 8 9
并且有一个单列数据帧
alpa beta
1 9 5
2 1 3
3 10 7
如何合并两个数据帧,如下所示?
x y alpa beta
a b a b
1 21 54 4 7 9 5
2 18 23 2 4 1 3
3 10 54 8 9 10 7
IIUC,你需要创建一个带有空白第一级的多索引:
df2.columns=pd.MultiIndex.from_product((df2.columns,['']))
pd.concat((df1,df2),axis=1)
x y alpa beta
a b a b
1 21 54 4 7 9 5
2 18 23 2 4 1 3
3 10 54 8 9 10 7
您需要联接 2 个具有MultiIndex
的数据帧或联接 2 个没有MultiIndex
的数据帧:
df2.columns = pd.MultiIndex.from_product([['new'], df2.columns])
df3 = pd.concat([df1, df2], axis=1)
print (df3)
x y new
a b a b alpa beta
1 21 54 4 7 9 5
2 18 23 2 4 1 3
3 10 54 8 9 10 7
df1.columns = df1.columns.map('_'.join)
df4 = pd.concat([df1, df2], axis=1)
print (df4)
x_a x_b y_a y_b alpa beta
1 21 54 4 7 9 5
2 18 23 2 4 1 3
3 10 54 8 9 10 7
否则获取MultiIndex
元组:
df = pd.concat([df1, df2], axis=1)
print (df)
(x, a) (x, b) (y, a) (y, b) alpa beta
1 21 54 4 7 9 5
2 18 23 2 4 1 3
3 10 54 8 9 10 7