2017-08-01 9 views
2

パンダ2つの異なる行と列のデータフレームを比較します。(等線なし)。 Aの1行がB行の1行に一致する場合。 Aの2番目の列をAの最初の列に置き換えます。だから、結果は次のようになります。は、私はここ2つのデータフレームを持って

C:ド、DD、AA、

答えて

1

あなたはすべての列に2つのデータフレームの左joinを行うことができ、indicator=Trueを指定するので、結果は示して_merge列を保持しますAの行がBからの1つに一致し、それに応じて第二のカラムを更新する場合:

A_ = A.merge(B.drop_duplicates(), indicator=True, how="left") 

# if the row comes from left only then don't make change, otherwise update the second column 
# with first column value 
A_[1] = A_[1].where(A_._merge == "left_only", A_[0]) 
A_.drop('_merge', 1) 

# 0 1 
#0 d e 
#1 d d 
#2 a a 

A = pd.DataFrame([['d','e'],['d','c'],['a','c']]) 
B = pd.DataFrame([['a','c'],['d','c']]) 
+0

、それは以下の私を示しました: merge()は予期しないキーワード引数 'indicator'を持っています – andrew

+0

あなたはどんなパンダのバージョンを使用していますか?パラメータは '0.17.0'に追加されます。 – Psidom

+0

Looks A_.drop( '_ merge'、1)が機能していない – andrew

関連する問題