我有两个要加入到employee_id 的pandas 数据框。一个是 Employee_Logs,另一个是 HR_Data。
Employee_Logs_df
employee_id action
2325255b login
51666164 login
51666164v login
r1211 logoff
r18552421 login
HR_Data_df
employee_id name
2325255 Rob
51666164 Tom
r1211 Tammy
r18552421 Ron
我想加入他们,使数据看起来像这样:
新建_df
employee_id action name
2325255b login Rob
51666164 login Tom
51666164v login Tom
r1211 logoff Tammy
r18552421 login Ron
如果两个表上的employee_id 字段匹配,我可以进行简单的连接,但是同一用户可以在其雇员id 后面有一个“ b”或“ v”,以指定该帐户是否像管理员帐户一样被提升。一些用户帐户r在 id 前面有一个“ ”,但在两个表中都是这种情况。
在 SQL 中,这给了我想要的结果:
select el*,
coalesce(h.name, hv.name, hb.name) as name
from employee_logs el left join
hr_data h
on el.employee_id = h.employee_id left join
hr_data hv
on el.employee_id = concat(h.employee_id, 'v') left join
hr_data hb
on el.employee_id = concat(h.employee_id, 'b');
在 Python 中有什么好方法可以让我做一些 where 操作并创建一个新的 df?
紫衣仙女
相关分类