加入两个数据帧

时间:2017-04-01 03:06:38

标签: python pandas

我有一个如下所示的数据框:

RIC | base
AAPL| AA
IBM |
AMD | 

和另一个具有相同字段但值不同的表:

RIC | base
AAPL | AA
IBM | 
AMD | AM

我想加入这两个表来获得这个结果表:

RIC | base
AAPL | AA
IBM | 
AMD | AM

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您是否注意到您想要的结果与第二个数据帧相同?

我认为你的意思是这样的:

考虑两个数据框d1d2

d1 = pd.DataFrame(dict(RIC=['AAPL', 'IBM', 'AMD'], base=['AA', None, None]))
d2 = pd.DataFrame(dict(RIC=['AAPL', 'IBM', 'AMD'], base=['aa', 'IB', 'AM']))

print(d1)
print()
print(d2)

    RIC  base
0  AAPL    AA
1   IBM  None
2   AMD  None

    RIC base
0  AAPL   aa
1   IBM   IB
2   AMD   AM

我们将使用set_indexcombine_first

d1.set_index('RIC').combine_first(d2.set_index('RIC')).reset_index()

    RIC base
0  AAPL   AA
1   IBM   IB
2   AMD   AM

此方法从第一个数据帧中获取值。否则,它将从第二个数据帧中获取值。

答案 1 :(得分:1)

你试试:pd.concat([df1,df2],axis = 1)