我有一个Pandas Dataframe,其中有三列遵循这种结构:
Employee email Manager
Smith asmith@example.com Johnson
Doe jdoe@example.com Smith
Johnson jjohnson@example.com Doe
... ... ...
我需要添加一个名为“经理的电子邮件”的栏目,其中包含员工经理的电子邮件。
Employee email Manager Manager's Email
Smith asmith@example.com Johnson jjohnson@example.com
Doe jdoe@example.com Smith asmith@example.com
Johnson jjohnson@example.com Doe jdoe@example.com
... ... ... ...
例如,对于员工'史密斯',由于他的经理是'约翰逊',该行的'经理电子邮件'的价值将是员工'约翰逊'的电子邮件
答案 0 :(得分:0)
您可以使用pandas.DataFrame.merge:
>>> dfN = pd.merge(df, df, how='left', left_on='Manager', right_on='Employee', suffixes=['',"_m"])
>>> del dfN['Employee_m']
>>> del dfN['Manager_m']
>>> dfN = dfN.rename(columns={'email_m':"Manager's email"})
>>> dfN
Employee Manager email Manager's email
0 Smith Johnson asmith@example.com jjohnson@example.com
1 Doe Smith jdoe@example.com asmith@example.com
2 Johnson Doe jjohnson@example.com jdoe@example.com