2017-04-01 130 views
1

我有一個數據幀,看起來像這樣:連接兩個dataframes

RIC | base 
AAPL| AA 
IBM | 
AMD | 

,並用相同的字段,但不同的價值觀另一個表:我想加入這兩個表得到這個

RIC | base 
AAPL | AA 
IBM | 
AMD | AM 

產生表:

RIC | base 
AAPL | AA 
IBM | 
AMD | AM 

我該怎麼做?

回答

2

你注意到你期望的結果是一樣的你的第二個數據幀?

我認爲你的意思是這樣的:

考慮兩個dataframes 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 

我們將使用​​和combine_first

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

    RIC base 
0 AAPL AA 
1 IBM IB 
2 AMD AM 

這種方法與所採用的值第一個數據幀存在時。否則,它將從第二個數據幀獲取值。

+0

謝謝!我不知道combine_first。這解決了我的問題。 –

1

嘗試:pd.concat([DF1,DF2]軸= 1)