I have two DataFrames (df_users
and df_managers
). Here is a sample of their data:
df_users = pd.DataFrame({
'name': ['Robert', 'Richard', 'Alex'],
'branch': ['Chicago', 'Montreal', 'Paris'],
'name_tag': ['Robert#112', 'Richard#1069', 'Alex#5918']
})
df_managers = pd.DataFrame({
'name': ['Robert', 'Richard', 'Alex', 'Rose', 'Abler'],
'email': ['robert112@stack.com', 'richard1069@stack.com', 'alex5918@stack.com', 'rose4222@stack.com', 'abler6120@stack.com',
'name_tag': ['Robert#112', 'Richard#1069', 'Alex#5918', 'Rose#4222', 'Abler#6120']
})
I want to filter df_managers
with only the rows where df_managers.name_tag == df_users.name_tag
. In other words, i need the rows in df_managers
for Robert, Richard and Alex.
What i tried (with no success):
df_users_that_are_also_managers = df_managers[df_managers.name_tag.isin(df_users.name_tag)]
#or
[...] = pd.merge(df_managers, df_users, on=['name_tag'], how='left')
Note that pd.merge()
also creates new columns in the merged dataframe depending on the existing columns. I need the exact same columns of df_managers
.
Thanks