我有以下带有2个键的字典,每个键的值都是pandas数据帧。
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中可能有很多键(其值总是一个数据帧)和2)每个数据帧可能有其他列而不仅仅是' x'所以我想直接引用该专栏。我们可以假设每个数据帧的索引始终匹配。
编辑:我希望结果是一个数据框,也包含每个元素的总和,列为' x'和相同的索引
答案 0 :(得分:0)
这应该这样做:
exampledict['total'] = np.sum([df['x'].values for df in exampledict.values()], axis=0)
答案 1 :(得分:0)
你必须解决这样一个事实:新的'总'键不能包含在总和中...否则它会将总数添加到自身!
for key, value in exampledict.iteritems():
for k, v in value.iteritems():
if key != 'total':
exampledict['total'] += v
使用iteritems()以防词典变得庞大。