2017-03-16 82 views
5

的列的新列,因此我有这两个DF的:
DF答:熊猫据帧创建基于其他dataframes

ID TYPE 
1 A 
2 B 
3 C 
4 A 
5 C 

DF B:

TYPE MEASURE 
A  0.3 
B  0.4 
C  0.5 

我想怎么办是基于df B关于TYPE的对应关系向df A添加第三列:

ID TYPE MEASURE 
1 A  0.3 
2 B  0.4 
3 C  0.5 
4 A  0.3 
5 C  0.5 

我试过这个代码:

def operation (row): 

RESULT=B.loc[titlevar['TYPE'] == row['TYPE'] ][['MEASURE']].values 
return RESULT 

A['MEASURE'] = A.apply (lambda row: operation (row),axis=1) 

但是我想我犯了更多的错误。希望有人能帮助我。提前致谢。

回答

3

您可以使用相关地图

dfA['MEASURE'] = dfA['TYPE'].map(dfB.set_index('TYPE')['MEASURE']) 

DFA:

ID TYPE MEASURE 
0 1 A  0.3 
1 2 B  0.4 
2 3 C  0.5 
3 4 A  0.3 
4 5 C  0.5 
+0

出于某种原因,我这样做的时候,我只在DFA – Gunnar

+0

获得的NAS列你检查所有的变量的拼写?它们都是您提供的示例中的CAP,可能是数据框中的标题大小或小。我仔细检查,这段代码的工作原理如此要求 – Vaishali

+0

它的工作!出于某种原因,我的dfB中有一个额外的空间。非常感谢! – Gunnar