Я пытаюсь определить глубину сотрудника в организации по дням. Верхний уровень (генеральный директор) - уровень 1, их прямые отчеты - уровень 2 и т. Д. c.
Мне удалось вычислить без даты, но возникли проблемы с вычислением уровня сотрудника для каждого дня. Вот что я сделал:
import pandas as pd
# setup df
df = pd.DataFrame({'date': ['3/29/2020', '3/29/2020', '3/29/2020', '3/30/2020', '3/30/2020', '3/30/2020', '3/30/2020'],
'empid': [1, 2, 3, 1, 2, 3, 4], 'mgrid': [0, 1, 2, 0, 1, 1, 2]})
# create dictionary
dct = dict(zip(df['empid'].values, df['mgrid'].values))
# function to create employee level
def level(empid):
top = 1
while (dct[empid]) != 0:
top += 1
empid = dct[empid]
return top
#apply level
df['level'] = df['empid'].apply(level)
![expected output](https://i.stack.imgur.com/pBYTM.png)