jre*_*yez 6 python numpy pandas
假设我们在层次结构方面同意以下顺序.
宝贝 - >孩子 - >少年 - >成人
我有这个数据集
Name Stage Highest_Stage_Reached
0 Adam Child
1 Barry Child
2 Ben Adult
3 Adam Teenager
4 Barry Adult
5 Ben Baby
Run Code Online (Sandbox Code Playgroud)
我如何让数据集像这样填充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
Run Code Online (Sandbox Code Playgroud)
使用 order 参数将列转换为分类列。现在它可以让你排序。这也将支持 Stage 中可变数量的参数。
df['Stage'] = pd.Categorical(df['Stage'], ordered=True, categories=['Baby', 'Child','Teenager','Adult'])
df['Highest_Stage_Reached'] = df.groupby('Name').Stage.transform('max')
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
Run Code Online (Sandbox Code Playgroud)