Python 3.x 根据条件将一个数据帧的一列与另一个数据帧连接起来

Python 3.x 根据条件将一个数据帧的一列与另一个数据帧连接起来,python-3.x,pandas,Python 3.x,Pandas,我有两个数据帧,df1和df2,如下所示: df1: Name Code Title_num 0 Title_1 0 TN_1234_4687 1 Title_2 0 TN_1234_7053 2 off_1 18301 TN_1234_1915 3 off_2 18302 TN_1234_7

我有两个数据帧,df1和df2,如下所示:

df1:

     Name          Code          Title_num
 0  Title_1        0             TN_1234_4687
 1  Title_2        0             TN_1234_7053
 2  off_1          18301         TN_1234_1915
 3  off_2          18302         TN_1234_7068
 4  off_3          18303         TN_1234_1828
     A_Code     T_Code
 0  000000086   18301   
 1  000000126   18302   
 2  000001236   18303   
 3  000012346   18938   
 4  000123456   18910   
 5  000123457   18301
    A_Code      T_Code   Title_num
 0  000000086   18301    TN_1234_1915
 1  000000126   18302    TN_1234_7068
 2  000001236   18303    TN_1234_1828
 3  000012346   18938    NaN
 4  000123456   18910    NaN
 5  000123457   18301    TN_1234_1915
df2:

     Name          Code          Title_num
 0  Title_1        0             TN_1234_4687
 1  Title_2        0             TN_1234_7053
 2  off_1          18301         TN_1234_1915
 3  off_2          18302         TN_1234_7068
 4  off_3          18303         TN_1234_1828
     A_Code     T_Code
 0  000000086   18301   
 1  000000126   18302   
 2  000001236   18303   
 3  000012346   18938   
 4  000123456   18910   
 5  000123457   18301
    A_Code      T_Code   Title_num
 0  000000086   18301    TN_1234_1915
 1  000000126   18302    TN_1234_7068
 2  000001236   18303    TN_1234_1828
 3  000012346   18938    NaN
 4  000123456   18910    NaN
 5  000123457   18301    TN_1234_1915
其中,df2中的T_代码与df1中的代码相同。我想将df1中的列Title_num连接到df2

例如,如果df2中的'T_Code'与df1中的'Code'匹配,我希望将列df1['Title_num']中的值加入df2。如果该值不存在,则应填充NaN

预期输出(联接后的df2):

     Name          Code          Title_num
 0  Title_1        0             TN_1234_4687
 1  Title_2        0             TN_1234_7053
 2  off_1          18301         TN_1234_1915
 3  off_2          18302         TN_1234_7068
 4  off_3          18303         TN_1234_1828
     A_Code     T_Code
 0  000000086   18301   
 1  000000126   18302   
 2  000001236   18303   
 3  000012346   18938   
 4  000123456   18910   
 5  000123457   18301
    A_Code      T_Code   Title_num
 0  000000086   18301    TN_1234_1915
 1  000000126   18302    TN_1234_7068
 2  000001236   18303    TN_1234_1828
 3  000012346   18938    NaN
 4  000123456   18910    NaN
 5  000123457   18301    TN_1234_1915
为此,我将df1中的列代码重命名为“T_code”,以便与df2上的名称匹配。然后我运行了以下代码:

 df2.merge(df1,on='T-Code',how='left')
这导致以下错误:“T#U代码”#检查重复项

现在,需要注意的是在df2中,重复的T_代码将存在,而在df1中,代码是唯一的。我希望df2中的Title_num值始终基于T_代码值显示[检查预期输出的第5行。T_代码值与第1行相同]


请告诉我执行此操作的方法。非常感谢您的帮助

你好,这个问题已经回答了

谢谢你,祝你好运。

我最后做了以下工作:

df2=pd.merge(df2, df1,left_on='T_Code', right_on='Code', how='left')
df2.drop(columns =['Name', 'Code'])