2013-10-29 95 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)