DataFrame 相同列名合并的同时出现新的列

有两个列名相同的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']