2017-04-13 54 views
0

我有以下带2个键的字典,每个键的值都是一个熊猫数据框。从字典中的数据集合中跨列的字段

x1 = np.random.randn(50) 
x2 = np.random.randn(50) 

df1 = pd.DataFrame({'x':x1}) 
df2 = pd.DataFrame({'x':x2}) 

exampledict={'key1': df1, 'key2':df2} 

我想创建在exampledict一个新的密钥,称为“总”其中结果是列x的值在每个每个键的dataframes的总和。这个例子非常简单,但在实践中1)exampledict中可能有很多键(其值始终是一个数据框),2)每个数据框可能有除'x'以外的其他列,所以我想引用该列直。我们可以假设每个数据帧的索引始终匹配。

编辑:我想的结果是一个数据帧还包含每个元素的总和,其列“x”和相同indexe

回答

0

这应做到:

exampledict['total'] = np.sum([df['x'].values for df in exampledict.values()], axis=0) 
+0

我可能应该已经更清楚了:我希望结果是一个数据帧也包含每个元素的总和,列'x'和相同的索引 – laszlopanaflex

0

你有以解决这个新的'全部'密钥不能包括在总和中的事实......否则它将把总数加到它自己!

for key, value in exampledict.iteritems(): 
    for k, v in value.iteritems(): 
     if key != 'total': 
      exampledict['total'] += v 

使用iteritems()以防字典变大。