从数据框中创建列的字典(包含部分)

我有一个带有调查详细信息的数据框。下面是这些列的简要摘录:

`['Q1','Q2','Q3','Q4','Q5','Q6','Q7','Q9','Q10','Q12_MULTIPLE_CHOICE','Q13_Part_1','Q13_Part_2','Q13_Part_3','Q13_Part_4','Q13_Part_5','Q13_Part_6','Q13_Part_7','Q13_Part_8','Q13_Part_9','Q13_Part_10','Q13_Part_11','Q13_Part_12','Q13_Part_13','Q13_Part_14','Q13_Part_15','Q15_Part_1','Q15_Part_2','Q15_Part_3','Q15_Part_4','Q15_Part_5','Q15_Part_6','Q15_Part_7']`

我想创建一个包含“带有零件的问题”的字典,也就是说,字典的键将是问题编号,而值将是零件的列表。

例如:

mydict= {
     'Q13': ['Q13_Part_1',... ],'Q15': ['Q15_Part_1','Q15_Part_7'],..
    }

我该如何处理?

hjf2010yl 回答:从数据框中创建列的字典(包含部分)

使用defaultdict作为存储值:

L = ['Q1','Q2','Q3','Q4','Q5','Q6','Q7','Q9','Q10','Q12_MULTIPLE_CHOICE','Q13_Part_1','Q13_Part_2','Q13_Part_3','Q13_Part_4','Q13_Part_5','Q13_Part_6','Q13_Part_7','Q13_Part_8','Q13_Part_9','Q13_Part_10','Q13_Part_11','Q13_Part_12','Q13_Part_13','Q13_Part_14','Q13_Part_15','Q15_Part_1','Q15_Part_2','Q15_Part_3','Q15_Part_4','Q15_Part_5','Q15_Part_6','Q15_Part_7']


from collections import defaultdict

d = defaultdict(list)
for x in L:
    if '_' in x:
        d[x.split('_')[0]].append(x)
print (d)


defaultdict(<class 'list'>,{'Q12': ['Q12_MULTIPLE_CHOICE'],'Q13': ['Q13_Part_1','Q13_Part_15'],'Q15': ['Q15_Part_1','Q15_Part_7']})

print (dict(d))

{'Q12': ['Q12_MULTIPLE_CHOICE'],'Q15_Part_7']}
本文链接:https://www.f2er.com/3166361.html

大家都在问