Python 将数据帧(df1)行值与另一数据帧(df2)列匹配,并更新数据帧(df1)中不同列的行

Python 将数据帧(df1)行值与另一数据帧(df2)列匹配,并更新数据帧(df1)中不同列的行,python,pandas,dataframe,Python,Pandas,Dataframe,我有2个数据帧,第一个DF1如下所示 JID JRSubUsageLabel_16 SUB_USAGE_16 22 6223 JR_BOne_CY16 NaN 26 6510 JR_S_CY16 NaN 59 11932 JR_B_CY16 NaN 70 14242 JR_B_CY16 NaN JID JRLab

我有2个数据帧,第一个DF1如下所示

    JID      JRSubUsageLabel_16 SUB_USAGE_16
22  6223    JR_BOne_CY16              NaN
26  6510    JR_S_CY16                 NaN
59  11932   JR_B_CY16                 NaN
70  14242   JR_B_CY16                NaN
    JID      JRLabel_16           SUB_USAGE_16
22  6223    JR1_B_CY16            5
26  6510    JR1_S_CY16            6
59  11932   JR1_B_CY16            1
70  14242   JR1_B_CY16            2
第二个数据帧df2如下所示

             JID    JR1_B_CY16  JR_CY16
1           1457    NaN             NaN
2           1530    NaN             NaN
3           1535    5               NaN
4           2035    NaN             NaN
5           6223    5               NaN
6           6510    1.0             6
39         11932    1.0             NaN
40         12021    NaN             NaN
41         12056    NaN             NaN
42         14234    2               1.0
我想根据JID列和JR1SubUsageLabel_16列值更新我的DF1数据帧。JID是两个数据帧中的匹配列。在DF1中,JR1SubUsageLabel_16列值变为DF2列。因此,其中一列的DF2也与DF1 JR1SubUsageLabel_16列值匹配。它应该如下所示

    JID      JRSubUsageLabel_16 SUB_USAGE_16
22  6223    JR_BOne_CY16              NaN
26  6510    JR_S_CY16                 NaN
59  11932   JR_B_CY16                 NaN
70  14242   JR_B_CY16                NaN
    JID      JRLabel_16           SUB_USAGE_16
22  6223    JR1_B_CY16            5
26  6510    JR1_S_CY16            6
59  11932   JR1_B_CY16            1
70  14242   JR1_B_CY16            2
我试图使用lambda更新此内容,但mapping无法准确确定如何更新此内容。有人能帮我吗

提前感谢

一种方法是合并:

输出:

     JID JR1SubUsageLabel_16  SUB_USAGE_16
0   6223     JR1_BioOne_CY16           5.0
1   6510   JR1_Springer_CY16           6.0
2  11932     JR1_BioOne_CY16           1.0
3  14242     JR1_BioOne_CY16           NaN
一种方法是合并:

输出:

     JID JR1SubUsageLabel_16  SUB_USAGE_16
0   6223     JR1_BioOne_CY16           5.0
1   6510   JR1_Springer_CY16           6.0
2  11932     JR1_BioOne_CY16           1.0
3  14242     JR1_BioOne_CY16           NaN

在第二个数据帧上使用pd.melt,然后使用left join获取第三列在第二个数据帧上使用pd.melt,然后使用left join获取第三列