热线电话:13121318867

登录
2019-02-25 阅读量: 682
如何根据层次结构计算列值

假设我们在层次结构方面同意以下顺序。

宝贝 - >孩子 - >少年 - >成人

我有这个数据集

Name Stage Highest_Stage_Reached

0 Adam Child

1 Barry Child

2 Ben Adult

3 Adam Teenager

4 Barry Adult

5 Ben Baby

我如何让数据集像这样填充Highest_Stage_Reached字段?

Name Stage Highest_Stage_Reached

0 Adam Child Teenager

1 Barry Child Adult

2 Ben Adult Adult

3 Adam Teenager Teenager

4 Barry Adult Adult

5 Ben Baby Adult

解决办法:可以使用:

d={'Baby':0,'Child':1,'Teenager':2,'Adult':3}

df['rank']=df.Stage.map(d)

df['Highest_Stage_Reached']=df.groupby('Name')['rank'].transform('max').\

map({v: k for k, v in d.items()})

print(df.drop('rank',1))

Name Stage Highest_Stage_Reached

0 Adam Child Teenager

1 Barry Child Adult

2 Ben Adult Adult

3 Adam Teenager Teenager

4 Barry Adult Adult

5 Ben Baby Adult

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子