2017-04-13 11 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} 

私は、結果は、各キーのデータフレームの各々の列xの値の和である「合計」と呼ばれるexampledictに新しいキーを作成したいです。この例は意図的に単純ですが、実際には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()を使用します。

関連する問題