我们中的许多人都知道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
...
然后所需要的一切就是将最后一列移到前面。