熊猫合并中的vlookup行为

时间:2019-10-16 07:39:26

标签: python pandas vlookup

我希望合并两个数据框的vlookup行为。 假设我在excel中有以下表格:

excel

使用vlookup在Table2中添加“ staus”列的结果如下: vlookup

对于代码“ 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]})

df

result1 = Table1.iloc[:,1:].merge(Table2, on = 'code')

result1

result2 = Table1.iloc[:,1:].merge(Table2, on = 'code', how = 'right')

result2

我可以设法删除结果中的重复项,但是仍然有两行代码“ 124”的状态为“ a”和“ b”。

我也搜索了this之类的帖子,但这无济于事。 任何有关解决方案的建议将不胜感激。

1 个答案:

答案 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')