简体   繁体   English

如何将单列数据框合并到多列数据框?

[英]how can I merge single column dataframe to multicolumn dataframe?

There's a multi columns dataframe like below有一个多列数据框,如下所示

      x          y
      a     b    a     b 
 1   21    54    4     7
 2   18    23    2     4
 3   10    54    8     9

and there's a single column dataframe to this并且有一个单列数据框

    alpa    beta
 1    9     5  
 2    1     3   
 3   10     7   

how can I merge two dataframes like below??如何合并两个数据框,如下所示?

      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

You need join 2 DataFrame with MultiIndex or 2 Dataframes with no MultiIndex :您需要加入 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

Else get tuples for MultiIndex :否则获取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

IIUC, you need to make a multiindex with blank first level: 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM