2017-04-01 18 views
1

私はこのようになりますデータフレームを持っている:参加2つのデータフレーム

RIC | base 
AAPL| AA 
IBM | 
AMD | 

と同じフィールドが異なる値を持つ別のテーブル:私はこれを取得するために2つのテーブルを結合したいと思います

RIC | base 
AAPL | AA 
IBM | 
AMD | AM 

結果テーブル:

RIC | base 
AAPL | AA 
IBM | 
AMD | AM 

どうすればいいですか?

答えて

2

をご希望の結果が2番目のデータフレームと同じであることがわかりますか?

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 

私たちは、このアプローチはから値をとり​​と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 

使用します考えてみましょう:

は、私はあなたがこのような何かを意味だと思います最初のデータフレームが存在する場合はそれを返します。それ以外の場合は、第2のデータフレームから値を取得します。

+0

ありがとうございました!私はcombine_firstを知らなかった。これは私の問題を解決しました。 –

1

あなたは試してみてください。pd.concat([DF1、DF2]、軸= 1)

関連する問題