我有下面的Pandas DF
创建DF的步骤
data=[['1','0','0','0','0'],['2','1','1','0','0|0'],['3','1','1','1','0|1'],['4','2','2','0','0|0|0'],['5','2','2','1','0|0|1'],['6','2','2','2','0|0|2'],['7','3','2','0','0|1|0'],['8','3','2','1','0|1|1'],['9','3','2','2','0|1|2'],['10','3','2','3','0|1|3'],['11','4','3','0','0|0|0|0'],['12','4','3','1','0|0|0|1'],['13','10','3','0','0|1|3|0']]
df = pd.DataFrame(data, columns=['eid','m_eid','level','path_variable','complete_path'])
df=df.drop('complete_path',axis=1)
这里:
eid =员工ID
m_eid =管理员ID
level =组织中的级别(0为最高老板)
path_variable =根据级别分配给员工的增量编号,该编号 for each 经理重置(例如:eid [4,5,6,7,8,9,10]属于同一级别2,但eid [4,5,6]具有相同的经理(m_eid = 2),因此path_variable为0,1,2,而eid [7,8,9,10]具有不同的经理(m_eid = 3),因此path_variable从0重新启动)
我想创建一个新的列,显示完整的路径,直到级别0 for each Eid.如下图所示:
完整路径是路径_variable直到0级(顶部凸台)的连接.
从根 node 到边缘 node 的路径.为了前任.让我们go 开斋节10
直接管理人员之间可能存在级别 skip .由于性能限制,我试图避免使用iterrows().