有两个列名相同的df,怎么在合并时将某一列重命名?
比如说有df A:
c1 c2
0 1 a
1 2 b
df B:
c1 c2
0 2 a
1 3 b
怎么合并变成
c1 c2 c3
0 1 a null
1 2 b a
2 3 null b
pc = pd.merge(pa,pb,on="c1",how='outer')
pc.columns=['c1','c2','c3']
pc
同名列多的话可以写循环赋值
dfA.unionAll(dfB.withColumnRenamed("c2", "c3"))
如果使用join的话,这么写,比merge长一些
import pandas
pa = pandas.DataFrame([[1, 'a'], [2, 'b']], columns=['c1', 'c2'])
pb = pandas.DataFrame([[2, 'a'], [3, 'b']], columns=['c1', 'c2'])
pc = pa.join(pb.set_index('c1'), on='c1', how='outer', lsuffix='_l', rsuffix='_r')
pc.columns=['c1', 'c2', 'c3']