将一个数据帧中的列添加到熊猫中的muliheader数据帧中

时间:2018-08-16 14:39:35

标签: python pandas

在以下代码中,如何将df2合并到df3以获得类似df4的输出。 df3是一个多标头数据帧,在最后的输出中,我只需要显示标头的第一级即可。如何实现这一目标

    >>> df = pd.DataFrame({'Maths':[95,96,97,98] ,'Science': [91,92,93,94]})
    >>> df2=pd.DataFrame({'Languages': ['English','Hindi','French','Spanish']})

    >>> header = pd.MultiIndex.from_product([['Subjects'],['Maths', 'Science']])
    >>> df3 = pd.DataFrame(df.values.tolist(), columns=header)
    >>> df3
      Subjects        
         Maths Science
    0       95      91
    1       96      92
    2       97      93
    3       98      94

    >>> df2
    Languages
    0   English
    1     Hindi
    2    French
    3   Spanish

Output df4

    Subjects               Languages
         Maths Science
    0       95      91      English
    1       96      92      Hindi
    2       97      93      French
    3       98      94      Spanish

2 个答案:

答案 0 :(得分:2)

先将MultiIndex添加到df2,然后再添加concatjoin

df2.columns = [df2.columns, ['']]
#another solution
#df2.columns = pd.MultiIndex.from_arrays([df2.columns, ['']])
df4 = pd.concat([df3, df2], axis =1)
#another solution
#df4 = df3.join(df2)

print (df4)
  Subjects         Languages
     Maths Science          
0       95      91   English
1       96      92     Hindi
2       97      93    French
3       98      94   Spanish

答案 1 :(得分:0)

像这样吗?

df4 = pd.concat([df3, df2], axis =1)
相关问题