2017-03-16 16 views
2
a1 = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]}) 
b2 = pd.DataFrame({'A': [1,4], 'B': [3,6]}) 

と私はマージして更新する方法2つのデータフレーム

c = pd.DataFrame({'A': [1,2,3,4], 'B': [3,3,4,6]}) 

A1を取得し、B2 key='A' にマージしたいが、 '' 等しいがB異なる、取得B2値

方法私はこの仕事を得ることができますか?全く分かりません。

答えて

2

まず一つの大きなデータフレームを取得するために、お互いの下に両方のデータフレームを連結しますのみAの一意の値を取得するには、列Aの

c = pd.concat([a1, b2], 0) 


    A B 
0 1 2 
1 2 3 
2 3 4 
0 1 3 
1 4 6 

その後グループ、最後に使用してますが、重複があった場合に比べて確認してくださいb2の値が使用されます。これは次のようになります。

次に、リセットインデックスを設定すると、いい数値インデックスが得られます。返し

c = c.reset_index() 

A B 
0 1 3 
1 2 3 
2 3 4 
3 4 6 

を一つにそれをすべて行うためには、単にコードの次の行入力して行く:

c = pd.concat([a1, b2], 0) 
c = c.groupby('A').last().reset_index() 
+0

パーフェクト!!おかげでたくさん!!! :) –

関連する問題