使用多个查找值在Python上执行类似vlookup的操作



我们中的许多人都知道Excel上Vlookup函数的语法如下:

=vlookup([lookup value], [lookup table/range], [column selected], [approximate/exact match (optional)])

我想在Python上用一个查找表(以数据帧形式(做一些事情,它看起来像这样:

Name        Date of Birth         ID#
Jack        1/1/2003              0
Ryan        1/8/2003              1
Bob         12/2/2002             2
Jack        3/9/2003              3     

等等。注意这两个杰克是如何因为出生日期不同而被分配不同的身份证号码的。

假设我有一本类似于成绩册的东西(同样是数据帧形式(,看起来像这样:

Name        Date of Birth         Test 1         Test 2
Jack        1/1/2003              89             91
Ryan        1/8/2003              92             88
Jack        3/9/2003              93             79
Bob         12/2/2002             80             84
...

我该如何使结果看起来像这样?

ID# Name        Date of Birth         Test 1         Test 2
0   Jack        1/1/2003              89             91
3   Ryan        1/8/2003              92             88
1   Jack        3/9/2003              93             79
2   Bob         12/2/2002             80             84
...

在我看来;查找值";将涉及多列数据("姓名"one_answers"出生日期"(。我知道如何在Excel中做到这一点,但我该如何在Python中做到呢?

原来我只能做

pd.merge([lookup value], [lookup table], on = ['Name', 'Date of Birth']

它产生

Name        Date of Birth         Test 1         Test 2    ID#
Jack        1/1/2003              89             91        0
Ryan        1/8/2003              92             88        3
Jack        3/9/2003              93             79        1
Bob         12/2/2002             80             84        2
...

然后所需要的一切就是将最后一列移到前面。

最新更新