![](/img/trans.png)
[英]How to replace the values in a dataframe column based on another dataframe condition
[英]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.