我希望合并两个数据框的vlookup行为。 假设我在excel中有以下表格:
使用vlookup在Table2中添加“ staus”列的结果如下:
对于代码“ 124”,它将返回第一个对应的状态“ a”。而这正是我所需要的。
我尝试在python中进行编码以得到所需的输出,如下所示:
Table1 = pd.DataFrame({"section" : ["1","2","1","2","2","2"], "code" : [124,254,156,147,124,156], "status" : ["a","b","c", "a", "b", "c"]})
Table2 = pd.DataFrame({"code": [124,254,156,147]})
result1 = Table1.iloc[:,1:].merge(Table2, on = 'code')
result2 = Table1.iloc[:,1:].merge(Table2, on = 'code', how = 'right')
我可以设法删除结果中的重复项,但是仍然有两行代码“ 124”的状态为“ a”和“ b”。
我也搜索了this之类的帖子,但这无济于事。 任何有关解决方案的建议将不胜感激。
答案 0 :(得分:0)
Table1 = pd.DataFrame({"section" : ["1","2","1","2","2","2"], "code" : [124,254,156,147,124,156], "status" : ["a","b","c", "a", "b", "c"]})
df1=Table1.drop_duplicates("code") #create new df without duplicates code
Table2 = pd.DataFrame({"code": [124,254,156,147]})
result2 = df1.iloc[:,1:].merge(Table2, on = 'code', how = 'right')