我有一个包含员工信息的数据集。在此数据集中,相关字段是 EmployeeName 列、ID 列和 SupervisorName 列。我想创建一个名为 SupervisorID 的新列,它为我们提供了每个员工主管的 ID。
输入数据框:
EmployeeName ID SupervisorName
Jim 123 Brittany
Brittany 345 Todd
Todd 456 Grace
预期输出:
EmployeeName ID SupervisorName SupID
Jim 123 Brittany 345
Brittany 345 Todd 456
我不知道如何有效地编写它,我尝试过使用 np.where() 语法和 .iloc[] 但我是 python 的新手,希望能得到有关如何解决这个问题的任何帮助。
您可以使用合并,并将其DataFrame
与自身合并
import pandas as pd
data =[{'EmployeeName': 'Jim', 'ID': 123,'SupervisorName': 'Brittany'},
{'EmployeeName': 'Brittany', 'ID': 345,'SupervisorName': 'Todd'},
{'EmployeeName': 'Todd', 'ID': 456,'SupervisorName': 'Grace'}]
df = pd.DataFrame(data)
df_sup = df[['EmployeeName','ID']]
df_sup= df_sup.rename(columns={'EmployeeName': 'SupervisorName', 'ID': 'SupID'})
df = df.merge(right=df_sup, on='SupervisorName', how='inner')
df
输出:
EmployeeName ID SupervisorName SupID
0 Jim 123 Brittany 345
1 Brittany 345 Todd 456
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句