首页 > 解决方案 > 如何根据索引将来自不同字典的熊猫现有列的值相加?

问题描述

我有一个用户的多个帐户的嵌套字典。每个帐户都保存一些键的浮点值。

我想将所有帐户(字典)中的值汇总到单个列,同时避免嵌套迭代,因为字典很大。

申请前:

前

另一方面,我有 2 个不同的字典


d = {
      a:{0:5,3:2,4:1},
      b:{1:4,3:1,4:10}
    }

total = pd.Series(index=list(range(6)),data=0,name='Total')

for acc in d.keys():
   for k,v in d[acc].items():
       total[k] += v  

总结应用代码后:

在此处输入图像描述

我想避免迭代所有 a,b 键,但不介意迭代 d.keys()

有什么方法可以使用 .map() 或其他有效的方法吗?

标签: pythonpandasdictionary

解决方案


从字典中构造一个数据框,并使用sum将两列添加在一起,然后使用以下方法添加两个数据框DataFrame.add

df = pd.DataFrame(d, index=total.index)
total.add(df.sum(axis=1))

0     5.0
1     4.0
2     0.0
3     3.0
4    11.0
5     0.0
dtype: float64

推荐阅读