对字典中按类别分组的数据求和

2024-05-15 21:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在表格里有一张单子

World=[['spain','europe'],['germany','europe'],['china','asia'],['japan','asia']]

还有一本字典

Gdp={
     'spain':{2010:100,2011:101,2012:102},
     'germany':{2010:110,2011:111,2012:112},
     'china':{2010:120,2011:145,2012:152},
     'japan':{2010:105,2011:107,2012:109}
    }

我想输出一个字典,按地区和按年度计算国内生产总值使用 按地区汇总的世界清单:

AreaGdp={
       'Europe':{2010:210,2011:212,2012:214}
       'Asia':{2010:225,2011:252,2012:261}
       }

Tags: world字典地区表格单子汇总年度europe
1条回答
网友
1楼 · 发布于 2024-05-15 21:34:23

您可以使用^{}对象来代替常规的dict对象。Counterdict的一个子类,它允许非常容易地从其他Counter对象更新值。你知道吗

>>> from collections import Counter
>>> AreaGdp = {pair[1]: Counter() for pair in World}
>>> AreaGdp
{'asia': Counter(), 'europe': Counter()}

现在更新AreaGdp中每个国家的World值:

>>> for pair in World:
        AreaGdp[pair[1]] += Counter(Gdp[pair[0]])

这将产生:

>>> AreaGdp
{'europe': Counter({2012: 214, 2011: 212, 2010: 210}), 
 'asia': Counter({2012: 261, 2011: 252, 2010: 225})}

相关问题 更多 >