Python 如何从数据集的复杂列中生成字典?

Python 如何从数据集的复杂列中生成字典?,python,list,dictionary,Python,List,Dictionary,因此,我的数据集中有一个column=Test\u标签。(请参见屏幕截图1以查看专栏的部分内容) 我正试着为每一行编一本字典。 我想要的列表,我相信每一行应该是这样的 比如说。下面是我的专栏 1 None 2

因此,我的数据集中有一个column=Test\u标签。(请参见屏幕截图1以查看专栏的部分内容)

我正试着为每一行编一本字典。 我想要的列表,我相信每一行应该是这样的

比如说。下面是我的专栏


1                                                                                                  None
2                                                                                                  None
3                                                                                                  None
4                                                                                                  None
5                                                                              COMP=off,CONTROLLER=4310
6                                                                       TEMP=25,SOAK=15,CONTROLLER=4310
7                                                                                         DSA=1,HSDIG=0
8                    VBAT=3.00,BGSEL=typ,CMON=none,POWER_MODE=buck,REVISION=ac,TEST=copy_settings,CS=bb
9                                                                  REVISION=ac,TEST=copy_settings,CS=bb
13                                                                 REVISION=ac,TEST=copy_settings,CS=bb
这是我刚刚用数据创建的列表。我认为这将有助于复制到IDE

[['None'],
 ['None'],
 ['None'],
 ['COMP=off,CONTROLLER=4310'],
 ['TEMP=25,SOAK=15,CONTROLLER=4310'],
 ['DSA=1,HSDIG=0'],
 ['VBAT=3.00,BGSEL=typ,CMON=none,POWER_MODE=buck,REVISION=ac,TEST=copy_settings,CS=bb'],
 ['REVISION=ac,TEST=copy_settings,CS=bb'],
 ['REVISION=ac,TEST=copy_settings,CS=bb']]
对于上面的列,我想要的字典在每一行都是这样的

{'None': 1}
{'None': 1}
{'None': 1}
{'COMP': 'off', 'CONTROLLER'=4310}
{'TEMP': 25, 'SOAK' : 15,'CONTROLLER' :4310 }
{'REVISION': 'ac', 'TEST':'copy_settings','CS':'bb' }
{'REVISION': 'ac', 'TEST':'copy_settings','CS':'bb' }

def custom_parse(row):
    if not row or row == 'None':
        return {'None': 1}
    else:
        split = row.split(',')
        out = {}
        for item in split:
            k, v = item.split('=')
            out[k] = v
        return out

df['a'].apply(custom_parse)

1                                           {'None': 1}
2                                           {'None': 1}
3                                           {'None': 1}
4                                           {'None': 1}
5                 {'COMP': 'off', 'CONTROLLER': '4310'}
6     {'SOAK': '15', 'TEMP': '25', 'CONTROLLER': '43...
7                            {'HSDIG': '0', 'DSA': '1'}
8     {'REVISION': 'ac', 'CS': 'bb', 'VBAT': '3.00',...
9     {'REVISION': 'ac', 'CS': 'bb', 'TEST': 'copy_s...
13    {'REVISION': 'ac', 'CS': 'bb', 'TEST': 'copy_s...
尽管如此,我不能像上面那样创建我的dict。 我也在这里发布我的代码

# Create an empty list 
Row_list =[] 

# Iterate over each row 
for rows in Dataframe.itertuples(): 
    # Create list for the current row 
    my_list =[rows.Test_Label] 
    # append the list to the final list 
    Row_list.append(my_list) 


res = []
for list in Row_list:
    res.append(str(list[0]).split(','))


new = []
for l in res:
    new.append([x.split('=') for x in l)        
new
A2 = [(element + [1])[:7] for element in new]
A2
dict(A2)
TypeError: unhashable type: 'list'

有人能帮我吗?

我们可以创建一个函数来解析每一行,然后
将该函数应用到每一行

{'None': 1}
{'None': 1}
{'None': 1}
{'COMP': 'off', 'CONTROLLER'=4310}
{'TEMP': 25, 'SOAK' : 15,'CONTROLLER' :4310 }
{'REVISION': 'ac', 'TEST':'copy_settings','CS':'bb' }
{'REVISION': 'ac', 'TEST':'copy_settings','CS':'bb' }

def custom_parse(row):
    if not row or row == 'None':
        return {'None': 1}
    else:
        split = row.split(',')
        out = {}
        for item in split:
            k, v = item.split('=')
            out[k] = v
        return out

df['a'].apply(custom_parse)

1                                           {'None': 1}
2                                           {'None': 1}
3                                           {'None': 1}
4                                           {'None': 1}
5                 {'COMP': 'off', 'CONTROLLER': '4310'}
6     {'SOAK': '15', 'TEMP': '25', 'CONTROLLER': '43...
7                            {'HSDIG': '0', 'DSA': '1'}
8     {'REVISION': 'ac', 'CS': 'bb', 'VBAT': '3.00',...
9     {'REVISION': 'ac', 'CS': 'bb', 'TEST': 'copy_s...
13    {'REVISION': 'ac', 'CS': 'bb', 'TEST': 'copy_s...

嘿,非常感谢你,我理解你的代码。我还有一个小查询,如果我的任何一行有键但没有字典的值,会发生什么情况。例如上面的“``COMP,CONTROLLER=4310```我没有任何键COMP的值。再次感谢。如果它不存在,值应该是多少?另外,如果您理解代码,那么修改代码和添加额外的条件应该相对容易,对吗?