如何在Python中合并字典列表并将其转换为多个数据帧?
我有几个字典列表,我想把它们转换成数据帧。我首先使用如何在Python中合并字典列表并将其转换为多个数据帧?,python,list,pandas,dictionary,Python,List,Pandas,Dictionary,我有几个字典列表,我想把它们转换成数据帧。我首先使用update将字典列表转换为字典字典,然后使用pd.concat连接每个字典 我按医院ID对数据进行分组,每个列表有两个字典。在每个字典中,都有一个数据框,其中包含“医院”、“病人信息”和“结果”列 由于我还有另外10家医院的测试结果,我是否可以在代码中添加一些内容,以更有效地生成数据帧,而不是编写hosiptal_35006=resultDF(diabetes_35006)。。。等等,每次 我认为最好的做法是拥有一本字典(“糖尿病”),然后使
update
将字典列表转换为字典字典,然后使用pd.concat
连接每个字典
我按医院ID对数据进行分组,每个列表有两个字典。在每个字典中,都有一个数据框,其中包含“医院”、“病人信息”和“结果”列
由于我还有另外10家医院的测试结果,我是否可以在代码中添加一些内容,以更有效地生成数据帧,而不是编写
hosiptal_35006=resultDF(diabetes_35006)
。。。等等,每次 我认为最好的做法是拥有一本字典(“糖尿病”),然后使用字典理解将其转换为数据框架字典(“医院”)
此链接有助于避免基于字符串动态生成变量的诱惑:
我假设(?)您的正确输入是(DICT列表):
首先,可以简化将字典列表转换为DataFrame的功能:
def resultDF(test_results):
return pd.concat([pd.DataFrame(res) for res in test_results]).reset_index(drop = True)
然后,我建议将所有结果分组到一个字典中,并一次性将它们转换为DF:
test_dict = {35006 : diabetes_35006,
35007 : diabetes_35007}
res_dict = {key: resultDF(el) for key, el in test_dict.iteritems()}
因此,您有:
res_dict[35006]
Out[64]:
hospital patientID results
0 35006 1 0
1 35006 2 1
2 35006 3 1
3 35006 4 0
以及:
谢谢你的消息,FLab。我在帖子中添加了一些数据信息,希望我的问题现在清楚了。你可能想回顾一下你的例子?您有两个名称相同的单独列表(例如,diabetes_35006…),我认为首先了解如何获得像diabetes_35006这样的变量会很有用,以了解是否有更好的解决方案
test_dict = {35006 : diabetes_35006,
35007 : diabetes_35007}
res_dict = {key: resultDF(el) for key, el in test_dict.iteritems()}
res_dict[35006]
Out[64]:
hospital patientID results
0 35006 1 0
1 35006 2 1
2 35006 3 1
3 35006 4 0
hospital patientID results
0 35007 1 0
1 35007 2 1
2 35007 3 1
3 35007 4 0