需要根据父任务对任务进行排序

时间:2019-06-18 15:13:49

标签: python pandas dataframe breadth-first-search directed-acyclic-graphs

需要对任务进行排序,这样,一旦列出了任务的父项,就应该按顺序进行排序。可以作为有向无环图(DAG)来处理

在此特定示例中, 主要问题是:  “ 13 ifhj 5,4,9,15”应该总是在5,4,9和15之后,但是13在15之后。

我正在提供示例输入和预期输出。

I / p:

task_no    t_name     Parent_Task_Numbers
    1       task1       0
    2       task2       0
    3       task3       0
    4       task4       1,2
    5       task5       0
    6       task6       2
    7       task7       4
    8       task8       6,1,4
    9       task9       10
    10      task10      1
    11      task11      2
    12      task12      3
    13      task13      5,4,9,15
    15      task15      7,8,2,10

预期的o / p :(这可能与此不同,但是应该提供主要思想)

task_no    t_name     Parent_Task_Numbers
    1       task1       0
    2       task2       0
    3       task3       0
    5       task5       0
    10      task10      1
    4       task4       1,2
    9       task9       10
    6       task6       2
    11      task11      2
    12      task12      3
    7       task7       4
    15      task15      7,8,2,10
    13      task13      5,4,9,15
    8       task8       6,1,4

def sort_parent_tasks1(fileName):
    df1 = pd.read_csv(fileName)
    print("df1.Parent_Task_Numbers.str.split(',')", type(df1.Parent_Task_Numbers.str.split(',')))
    df1.Parent_Task_Numbers.str.split(',').apply(sorted, reverse = True).str.join(',').str.strip(',')
    df3 = df1.sort_values(['Parent_Task_Numbers'])
    df3.to_csv("/fileData/task_files/output/test_generated1.csv")


inputFile = "/fileData/task_files/input/test.csv"
sort_parent_tasks1(inputFile)

我得到的是:这是错误的。

tasknumber    taskname    Parent_Task_Numbers
1       task1       0
2       task2       0
3       task3       0
5       task5       0
10      task10      1
4       task4       1,2
9       task9       10
6       task6       2
11      task11      2
12      task12      3
7       task7       4
13      task13      5,4,9,15
8       task8       6,1,4
15      task15      7,8,2,1

1 个答案:

答案 0 :(得分:0)