2017-12-04 13 views

答えて

1

あなたのコードの誤りを、持っていないDF2から来る列名 'EW'

私が使用することをお勧めしますそれはあなたのように見えるisin + np.where

df2.AD=np.where(df2.AD.isin(df1.EW),df2.AD,np.nan) 
df2 
Out[193]: 
    AD 
0 A 
1 NaN 
2 BC 
0

df2.ADの値がdf1.EWであるかどうかをチェックしています。左マージでこれを実現できます。

import pandas as pd 

df1 = pd.DataFrame({'EW':['A','BC']}) 
df2 = pd.DataFrame({'AD':['A','B','BC']}) 
df3 = df2.merge(df1, how='left', left_on='AD', right_on='EW')[['EW']] 
df3.rename(columns={'EW':'AD'}) 

# returns: 
    EW 
0 A 
1 NaN 
2 BC 
関連する問題