2013-10-29 142 views
0
------------------------------- 
dfA: 
------------------------------- 
       special_name 
site_id      
A    Apple 
B    Banana 

------------------------------- 
dfB: 
------------------------------- 
       42  41 
site_id        
A   20944 20356 
B   41795 42823 

我需要特殊的名字列添加到DFB數據幀,這樣的結果是這樣的:添加數據幀A的列到數據幀B中的列

   42  41 special_name 
site_id        
A   20944 20356  Apple 
B   41795 42823  Banana 

我曾嘗試:

dfB['special_name'] = dfA['special_name'] 

TypeError: incompatible index of inserted column with frame index 

我也試過儘可能多的合併,連續變化和連接,因爲我能想到。他們都有錯誤,所以例如:

dfB = dfB.join(dfA, on='site_id') 

KeyError: u'no item named site_id' 

任何幫助將不勝感激。

+0

實際上DFB [ 'special_name'] = DFA [ 'special_name']適用於你的榜樣 –

回答

2

您使用join會引發錯誤,因爲site_id在本例中不完全是列 - 它是DataFrame的索引。您應該能夠只使用:

dfB = dfB.join(dfA) 

默認情況下,join假設你想要加入的兩幀上的索引。通過使用on=,它開始在DataFrame的列中查找site_id

或者,你可以使用merge

dfB = pandas.merge(dbA, dbB, left_index=True, right_index=True)