pythonmergepandas

Python Pandas merge only certain columns


Is it possible to only merge some columns? I have a DataFrame df1 with columns x, y, z, and df2 with columns x, a ,b, c, d, e, f, etc.

I want to merge the two DataFrames on x, but I only want to merge columns df2.a, df2.b - not the entire DataFrame.

The result would be a DataFrame with x, y, z, a, b.

I could merge then delete the unwanted columns, but it seems like there is a better method.


Solution

  • You could merge the sub-DataFrame (with just those columns):

    df2[list('xab')]  # df2 but only with columns x, a, and b
    
    df1.merge(df2[list('xab')])