如何将单列数据帧合并为多列数据帧?



有一个多列数据帧,如下所示

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

最新更新