how to concat two data frames with different column names in pandas? - python

前端 未结 2 1887
面向向阳花
面向向阳花 2020-12-15 20:54
df1 = pd.DataFrame({\'a\':[1,2,3],\'x\':[4,5,6],\'y\':[7,8,9]})
df2 = pd.DataFrame({\'b\':[10,11,12],\'x\':[13,14,15],\'y\':[16,17,18]})

I\'m tryin

相关标签:
2条回答
  • 2020-12-15 20:57

    Use numpy to concatenate the dataframes, so you don't have to rename all of the columns (or explicitly ignore indexes). np.concatenate also works on an arbitrary number of dataframes.

    df = pd.DataFrame( np.concatenate( (df1.values, df2.values), axis=0 ) )
    df.columns = [ 'a', 'x', 'y' ]
    df
    
    0 讨论(0)
  • 2020-12-15 21:06

    Just use concat and rename the column for df2 so it aligns:

    In [92]:
    pd.concat([df1,df2.rename(columns={'b':'a'})], ignore_index=True)
    
    Out[92]:
        a   x   y
    0   1   4   7
    1   2   5   8
    2   3   6   9
    3  10  13  16
    4  11  14  17
    5  12  15  18
    

    similarly you can use merge but you'd need to rename the column as above:

    In [103]:
    df1.merge(df2.rename(columns={'b':'a'}),how='outer')
    
    Out[103]:
        a   x   y
    0   1   4   7
    1   2   5   8
    2   3   6   9
    3  10  13  16
    4  11  14  17
    5  12  15  18
    
    0 讨论(0)
提交回复
热议问题