Python 在字典中跨键聚合数据帧中的列

Python 在字典中跨键聚合数据帧中的列,python,pandas,dictionary,Python,Pandas,Dictionary,我有以下两个键的字典,每个键的值都是一个数据帧 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中创建一个名为“total”的新键,其中结果是每个键的每个数据帧中x列的值之和。本示例有意简单,但在实践中1)exampled

我有以下两个键的字典,每个键的值都是一个数据帧

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中创建一个名为“total”的新键,其中结果是每个键的每个数据帧中x列的值之和。本示例有意简单,但在实践中1)exampledict中可能有许多键(其值始终为dataframe),2)每个dataframe可能有其他列,而不仅仅是“x”,因此我想直接引用该列。我们可以假设每个数据帧的索引总是匹配的

编辑:我希望结果是一个数据框,也包含每个元素的总和,列为“x”,索引相同。这应该可以做到:

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

您必须解决一个事实,即新的“总计”键不能包含在总和中。。。否则它将把总数加到它自己身上

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

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

我可能应该说得更清楚:我希望结果是一个数据帧,也包含每个元素的总和,列“x”和相同的索引