需要
numpy.setdiff1d
对于检查成员身份,列的唯一值:
print (np.setdiff1d(df1['Code'].unique(), df1['Code'].unique()))
[]
print (np.setdiff1d(df2['Code'].unique(), df1['Code'].unique()))
['D' 'E']
您的解决方案很好,尤其是在需要添加更多列时,如:
print (df2)
Code Unit_Price col
0 A 2 7
1 B 3 2
2 C 4 1
3 D 5 0
4 E 6 3
df3 = df1.merge(df2,on='Code',how='left')
print (df3)
Code Sales Store Unit_Price col
0 A 10 alpha 2 7
1 B 5 beta 3 2
2 C 4 gamma 4 1
3 B 3 alpha 3 2
如果需要,只添加一列
map
通过
Series
什么应该更快:
df1['unit_price'] = df1['Code'].map(df2.set_index('Code')['Unit_Price'])
print (df1)
Code Sales Store unit_price
0 A 10 alpha 2
1 B 5 beta 3
2 C 4 gamma 4
3 B 3 alpha 3