假设我们在层次结构方面同意以下顺序。
宝贝 - >孩子 - >少年 - >成人
我有这个数据集
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








暂无数据