Pandas/Python - 根据其他列的交叉引用创建新列

ek11222

我有一个包含员工信息的数据集。在此数据集中,相关字段是 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章