代码之家  ›  专栏  ›  技术社区  ›  Neo

在pandas中将列从一个dataframe添加到muliheader dataframe

  •  2
  • Neo  · 技术社区  · 7 年前

    在下面的代码中,如何将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 回复  |  直到 7 年前
        1
  •  2
  •   jezrael    7 年前

    费拉特加 MultiIndex df2 concat join :

    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
    
        2
  •  0
  •   grshankar    7 年前

    df4 = pd.concat([df3, df2], axis =1)