繁体   English   中英

根据条件将数据框的一列与另一数据框连接

[英]Join one column of a dataframe with another dataframe based on a condition

我有2个数据帧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

df2:

     A_Code     T_Code
 0  000000086   18301   
 1  000000126   18302   
 2  000001236   18303   
 3  000012346   18938   
 4  000123456   18910   
 5  000123457   18301

其中df2中的T_code与df1中的Code相同。 我想将df1中的Title_num列加入df2中。

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

预期输出(加入后的df2):

    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_code'#检查重复项

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

让我知道执行此操作的方法。 任何帮助深表感谢!

您好, 这里已经回答这个问题。

祝你好运。

我最终这样做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM