结合两个具有重复列的数据框

时间:2019-06-13 18:09:38

标签: python pandas data-manipulation

我有两个数据框A和B。
我想用pandas.concat([A, B], axis = 1)来组合它们。
但是,其中有一些重复的列,如下所示:

# A
ID Col1 Col2 Col3 Col4 Col5 TL

# B
Col1 Col2 Col3 Col4 Col5

数据Col1-Col5B下的值与数据A中的值不同。
如何获取带有列ID Col1 Col2 Col3 Col4 Col5 TL的新数据框。
IDTL来自数据A,但Col1-Col5来自数据B

2 个答案:

答案 0 :(得分:1)

使用@wwii设置。 让我们使用combine_first

db.combine_first(da)

输出:

  ID TL  c1  c2
0  a  q  10  20
1  b  r  11  21
2  c  s  12  22
3  d  t  13  23
4  e  u  14  24

答案 1 :(得分:0)

da = pd.DataFrame({'ID':list('abcde'), 'c1':range(5),'c2':range(5), 'TL':list('qrstu')})
db = pd.DataFrame({'c1':range(10,15),'c2':range(20,25)})

不清楚您需要什么,这里有一些。

da.update(db)

da[['c1','c2']] = db[['c1','c2']]

cols = [c for c in da.columns if c in db.columns]
da[cols] = db[cols]

dc = pd.concat([da['ID'],db[['c1','c2']], da['TL']], 1)