2016-10-31 4 views
2

私は、データフレームaありますパンダとの重複列はマージしますか?

ID value1 
1  nan 
2  nan 
3  nan 
4  nan 
5  nan 

と他の2つのデータフレーム、bc:私はa.merge(b, on='ID').merge(c, on='ID')を行うと

ID  value1 
2  20 
3  10 

ID  value1 
1  58 
4  20 

を、私はvalueの重複列を取得します。私の最終的な結果は列があります。

ID  value1_x value1_y value1 

を私はで終わるしたい:

ID value1 
1  58 
2  20 
3  10 
4  20 
5  nan 

がどのように重複した列なしaの値を移入しbcを使うのですか?

あなたが drop古い列 avalue1concat、その後 mergeを使用することができます

答えて

2

:私はOPを更新しようとしますが、のはA`も内のNaNされているIDの5-10を持っている `としましょうよ

df1 = pd.concat([b,c]) 
print (df1) 
    ID value1 
0 2  20 
1 3  10 
0 1  58 
1 4  20 

df2 = pd.merge(a ,df1, on='ID', how='left', suffixes=('_','')) 
df2.drop('value1_', axis=1, inplace=True) 
print (df2) 
    ID value1 
0 1 58.0 
1 2 20.0 
2 3 10.0 
3 4 20.0 
4 5  NaN 
+0

'value1' - 私はそれらをnansとして保ちたい。 – user1566200

+0

更新を見てください。解決策は非常によく似ています。最初の列に '_'を追加し、2番目の列に空の文字列を追加するために' suffixes'が追加されました。 – jezrael

関連する問題