Slight correction, pass series FullNamec IDas an index:
df['Fullname'] = df['ID'].map(dfusers.set_index('ID')['FullName'])
Or, with replace(also works with the Series, albeit more slowly, since it is not vectorized):
df['Fullname'] = df['ID'].replace(dfusers.set_index('ID')['FullName'])
df
ID Count Fullname
0 A1 5 Mike Frost
1 B1 12 Jack James
2 C1 7 Mickey Rose
Another option might use pd.Series.searchsorted:
df['FullName'] = dfusers.loc[df.index[df.ID.searchsorted(df.ID)], 'FullName']
df
ID Count Fullname
0 A1 5 Mike Frost
1 B1 12 Jack James
2 C1 7 Mickey Rose
Assuming df.IDalready sorted.
source
share