如何在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