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

Gun*_*ar 5 python dataframe python-3.x pandas

所以我有这两个df:
df A:

ID  TYPE  
1    A
2    B
3    C
4    A
5    C
Run Code Online (Sandbox Code Playgroud)

df B:

TYPE  MEASURE
A      0.3
B      0.4
C      0.5
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据df B的对应关系为df A添加第三列TYPE:

ID  TYPE MEASURE
1    A     0.3
2    B     0.4
3    C     0.5
4    A     0.3
5    C     0.5
Run Code Online (Sandbox Code Playgroud)

我试过这段代码:

def operation (row):  

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

A['MEASURE'] = A.apply (lambda row: operation (row),axis=1)
Run Code Online (Sandbox Code Playgroud)

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

Vai*_*ali 3

您可以为此使用地图

dfA['MEASURE'] = dfA['TYPE'].map(dfB.set_index('TYPE')['MEASURE'])
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)