【发布时间】:2020-10-10 19:20:38
【问题描述】:
我有一个包含 3 列的 DataFrame:ID、BossID 和 Name。每一行都有一个唯一的 ID 并有一个相应的名称。 BossID 是该行中人员的老板的 ID。假设我有以下 DataFrame:
df = pd.DataFrame({'id':[1,2,3,4,5], 'bossId':[np.nan, 1, 2, 2, 3],
'name':['Anne Boe','Ben Coe','Cate Doe','Dan Ewe','Erin Aoi']})
所以在这里,Anne 是 Ben 的老板,Ben Coe 是 Cate 和 Dan 的老板,等等。
现在,我想要另一列包含每个人的老板姓名。
想要的输出是:
id boss name boss_name
0 1 NaN Anne NaN
1 2 1.0 Ben Anne
2 3 2.0 Cate Ben
3 4 2.0 Dan Ben
4 5 3.0 Erin Cate
我可以使用丑陋的双 for 循环获得输出。有没有更简洁的方法来获得所需的输出?
【问题讨论】:
-
两个答案都有效,但 rhug 的解决方案更适合这个例子。