2014-04-01 134 views
0

在Python的大熊貓之一,可以說,我有兩個DataFrames合併使用上一列的聚合兩個DataFrames在DataFrames

A = pd.DataFrame({'key1': np.random.randint(4, size=10), 'val1': np.random.rand(10) }) 

B = pd.DataFrame({'key1': np.random.randint(4, size=10), 'val2': np.random.rand(10) }) 

我要添加一列到B這是值的平均值A中'val1'的組合(按鍵指A和B中的相同索引)。什麼是最好的方法來做到這一點?

這裏是我

A1 = A.groupby('key1')['val1'].mean().reset_index() 
B.merge(A1 , on='key1', how='left', sort=False, right_index=True) 

回答

0

你的意思是這樣的什麼工作?

A1 = A.groupby('key1').mean().reset_index() 
pd.merge(B, A1, on='key1') 
+0

是否第二線合併成A1 B,或是否需要說'B = pd.merge(B,A1,對= 'KEY1')' – user3487187

+0

@ user3487187不執行合併「IN-地方「,不。你必須分配它。 – chrisaycock

+0

謝謝。幾個後續步驟:a)如果'val2'實際上在B中被稱爲'val1'會怎麼樣?有沒有辦法給val1的不同名稱的意思? b)如果B中有一些不在A中的鍵怎麼辦......有沒有辦法爲那些缺失的鍵分配mean(val1)= 0,以便不會丟失B中的條目 – user3487187