Pandas数据框基于其他数据框的列创建新列

时间:2017-03-16 00:52:39

标签: python python-3.x pandas dataframe

所以我有这两个df' s df答:

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

我想做的是根据关于TYPE的df B的对应关系,向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)

但我认为我犯了更多错误。希望有人可以帮助我。提前谢谢。

1 个答案:

答案 0 :(得分: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