创建嵌套词典

2024-05-15 05:52:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个DataFrame,看起来像这里的3列:

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

我所做的是:如果在'TC Type'列中找到"Actual"个单词,那么将前面所有的"Pre-Req"与所有"Actual"相加;如果我连续找到"Actual",我需要在这两个"Actual"之前取所有的{}。在

代码:

^{pr2}$

电流输出:

{
    name 5: [4, [name 1,
        name 2,
        name 3,
        name 4
    ]],
    name 6: [5, [name 1,
        name 2,
        name 3,
        name 4
    ]],
    name 8: [7, [name 7]]
}

我想要的是Module Name作为上述听写的关键。在

预期产量:

{
    Module 1: {
        name 5: [4, [name 1,
            name 2,
            name 3,
            name 4
        ]],
        name 6: [5, [name 1,
            name 2,
            name 3,
            name 4
        ]]
    },
    Module 2: {
        name 8: [7, [name 7]]
    }
}

如何实现这个输出?如有任何帮助,我们将不胜感激。在


Tags: 代码nametestdataframetype单词prereq
1条回答
网友
1楼 · 发布于 2024-05-15 05:52:12

你能提供更好的描述包括模块的作用吗?在

我能建议的是:

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

请注意,这绝对不是Python/熊猫的方式。在

相关问题 更多 >

    热门问题