我有两个数据帧,如下所示
data_df = pd.DataFrame({'person_id': ['abc@gmail.com','abc@gmail.com','abc@gmail.com','ace@gmail.com','ace@gmail.com','pqr@gmail.com','pqr@gmail.com'],
'company': ['a','a','a','a','a','a','a'],
'dept_access':['a1','a1','a1','a1','a2','a2','a2']})
key_df = pd.DataFrame({'p_id': ['abc@gmail.com','xyz@gmail.com','pqr@gmail.com'],
'company': ['a','a','a'],
'location':['UK','USA','KOREA']})
我的目标是做以下事情
a) 附加
location
列来自
key df
到
data df
所以,我尝试了如下的合并选项
data_df.merge(key_df,left_on='person_id',right_on='p_id',how='left')
但由于合并列中存在重复项,这会导致记录比原始data_df多。
因此,我想使用
map
据我所知
key_df
将为每个用户提供一个unique_key。所以,我在尝试下面这样的东西
s = key_df.set_index(['p_id'])['location']
data_df['location'] = data_df[('person_id')].map(s)
但这并不奏效。
我希望我的输出有4列,如下所示