【发布时间】:2020-01-11 13:13:03
【问题描述】:
我有 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 中的代码相同。我想将 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_codes,而在 df1 中,代码是唯一的。我希望 df2 中的 Title_num 值始终根据 T_code 值出现 [检查预期输出的第 5 行。 T_code 值与第 1 行相同]。
请告诉我执行此操作的方法。非常感谢任何帮助!
【问题讨论】:
标签: python-3.x pandas