My question is closely related to Pandas Merge - How to avoid duplicating columns but not identical.
I want to concatenate the columns that are diff
Using concat with groupby and first:
concat
groupby
first
pd.concat([df1, df2, df3], 1).groupby(level=0, axis=1).first()
A B C D id name place qty unit 0 a b c d 1 Tom NY 2 10 1 a b c d 2 Ron TK 3 15 2 a b c d 3 Don Lon 5 90 3 a b c d 4 Sam Hk 4 49