首页 > 解决方案 > 使用树信息创建 pandas 列

问题描述

我有一个带有 ' Tree' 列的 pandas df,我想创建Leaf仅包含 ' '的列integers,以区分该分类法是否属于同一个最终叶:

'index'    'Tree'
0          'woman | watches | steal'
1          'woman | dresses | short-sleve'
2          'woman | watches | steal'
3          'woman | dresses | short-sleve'
4          'woman | dresses | long-sleve'     

输出:

'index'    'Tree'                            'Leaf' 
0          'woman | watches | steal'          0
1          'woman | dresses | short-sleve'    1
2          'woman | watches | steal'          0 
3          'woman | dresses | short-sleve'    1
4          'woman | dresses | long-sleve'     2 

有什么建议可以快速完成吗?

标签: pythonpandas

解决方案


您可以groupby('Tree')并获取组号:

df['Leaf'] = df.groupby('Tree').ngroup()

如果您只想使用最后一个元素:

df['Leaf'] = df.groupby(df['Tree'].str.split(' | ').str[-1]).ngroup()

推荐阅读