我的dataframe中有以下格式的数据
>>> Surveyresp['Warehouse.Response.jud_3_3_q']
1 ['item3', 'item4', 'item2', 'item1']
Name: Warehouse.Response.jud_3_3_q, dtype: object
这个数据片段显示了用户响应在我的数据中被格式化为一个特定的复选框问题'Warehouse.Response.jud_3_3_q'的方式。所以这意味着这个特定的参与者已经为这个问题选择了项目1、项目4、项目2和项目3。
此调查将与JSON回答密钥文件相匹配,并吐出一个计算分数的数字。问题是JSON文件以不同的格式存储这些问题的答案。在仓库。以Jud_3_3_q为例,本题的正确答案存储为:
{'Warehouse.Response.jud_3_3_q.1': ['item1'], 'Warehouse.Response.jud_3_3_q.2': ['item2'], 'Warehouse.Response.jud_3_3_q.3': ['item3'], 'Warehouse.Response.jud_3_3_q.4': ['item4']}
问题的答案被分开(如问题1,问题2等),这阻止了我将数据框架中的响应与JSON答案键相匹配,我已经将其作为字典读取。有没有人有任何建议,我如何可以重新格式化这个answerkey字典使用熊猫?
我想要的输出看起来像这样,以匹配CSV响应:
{'Warehouse.Response.jud_3_3_q': ['item1', 'item2', 'item3', 'item4']}
您可以尝试将q.1
与q.4
组合以列出
d = {'Warehouse.Response.jud_3_3_q.1': ['item1'], 'Warehouse.Response.jud_3_3_q.2': ['item2'], 'Warehouse.Response.jud_3_3_q.3': ['item3'], 'Warehouse.Response.jud_3_3_q.4': ['item4']}
answer = pd.DataFrame(d).apply(lambda row: row.tolist(), axis=1).to_frame('Warehouse.Response.jud_3_3_q')
print(answer)
Warehouse.Response.jud_3_3_q
0 [item1, item2, item3, item4]
print(answer.to_dict(orient='list'))
{'Warehouse.Response.jud_3_3_q': [['item1', 'item2', 'item3', 'item4']]}