添加在Dictonary

时间:2017-11-27 06:28:01

标签: python list pandas dictionary

我有一个数据框,看起来我在这里有2列

Automated test case name               TC Type  
     name 1                            Pre-Req   
     name 2                            Pre-Req   
     name 3                            Pre-Req   
     name 4                            Pre-Req   
     name 5                            Actual   
     name 6                            Actual   
     name 7                            Pre-Req   
     name 8                            Actual   

我要做的是如果在TC Type栏中找到“Actual”字样, 然后添加以前的所有“pre-req”与所有实际值, 如果我连续发现Actuals,我需要采取所有的前需求 在两个“实际”之前,我发现我已经编写了代码,但这并没有给我确切的结果。

以下是我的代码

new_list =[]
prev_list = []
df = data_TC1
Dict_TestCase_Mapping ={}
is_ActualFound = False
for i in range(1,len(df)):
    if "Actual" == df['TC Type'][i]:
        Dict_TestCase_Mapping[df['Automated test case name'][i]]= [i,new_list]
        is_ActualFound = True
    else:
        new_list.append(df['Automated test case name'][i])

预期输出

 { name 5 :
 [4,
    [name1,
     name2,
     name3,
     name4
   ]]
  name 6 :
  [5,
  [name 1,
   name 2,
   name 3,
   name 4
   ]]
  name 8 :
  [7,
  [name 7
  ]]

我如何获得这个预期的输出?如果两个实际连续出现怎么处理?

1 个答案:

答案 0 :(得分:0)

您没有使用is_ActualFound变量。在循环中包含此elif块,它应该完成工作。如果您不了解任何内容,请在下面发表评论。还要知道它是否适合你。

for i in range(1,len(df)):
    if "Actual" == df['TC Type'][i]:
        Dict_TestCase_Mapping[df['Automated test case name'][i]]= [i,new_list]
        is_ActualFound = True
    elif is_ActualFound and df['TC Type'][i] != "Actual":
        new_list = []
        mew_list.append(df['Automated test case name'][i])
        is_ActualFound = False
    else:
        new_list.append(df['Automated test case name'][i])