Я хотел бы суммировать все столбцы has_filed_paperwork
для менеджера и всех его сотрудников, и всех сотрудников их сотрудников, и так далее.
Я посмотрел на библиотеку networkx, так как казалось, что я могу это сделать, но я смог только выяснить, как подсчитать всех подчиненных, а не условно.
Я пытался разбить DataFrame на has_filed, а затем не подсчитывал с помощью networkx, но это нарушает отношения, поэтому люди пропадают без вести.
Это примерный фрейм данных.
d = {
'emp_id': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
'manager_id': ['5', '5', '8', '7', '7', '8', '9', '9', np.NaN, '8'],
'has_filed': [False, True, True, True, True, False, False, True, True, True]
}
df = pd.DataFrame(d)
df
Я бы хотел, чтобы выходные данные выглядели примерно так: код ниже - просто кадр данных, который я создал для демонстрации выходных данных.
do = {
'emp_id': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
'has_filed_count': [0, 1, 1, 1, 2, 0, 3, 2, 7, 1],
'has_not_filed_count': [1, 0, 0, 0, 1, 1, 2, 1, 3, 0]
}
df_o = pd.DataFrame(do)
df_o