首页 > 解决方案 > 将一个数据框中的列添加到 pandas 中的 muliheader 数据框

问题描述

在以下代码中,如何将 df2 合并到 df3 以获得类似df4. df3 是一个多头数据帧,在最终输出中,我只需要第一级的头作为 show.how 来实现这一点

    >>> 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

标签: pythonpandas

解决方案


Firat 添加MultiIndexdf2然后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

推荐阅读