在 Python 中使用两个数据框进行简单查找

Ram*_*mon 2 python dataframe pandas

我正在使用熊猫,我的目的是将数据从一张表带到另一张表。假设我有两个名为 df1 和 df2 的数据框:

df1 是这样的:

Name    Age    Height
Marcus  18     170
Dan     21     172
Phill   30     165
Paty    24     160
Linda   25     158
Run Code Online (Sandbox Code Playgroud)

df2 是这样的:

Name    Score1    Score2     Score3
Dan          A         C          C
Paty         B         A          B
Marcus       C         D          B
Zoe          A         A          B
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来选择 df1 中的人的年龄并将其带到 df2,从而得到这样的表格:

Name    Score1    Score2     Score3    Age
Dan          A         C          C    21
Paty         B         A          B    24
Marcus       C         D          B    18
Zoe          A         A          B    NaN
Run Code Online (Sandbox Code Playgroud)

在 Excel 中,我们在 df2 到 df1 中使用 VLOOKUP 函数。但是我在 Python 中找不到类似的东西。

Vai*_*ali 5

您可以使用地图或合并,地图会更快

选项 1:使用地图

df2['Age'] = df2['Name'].map(df1.set_index('Name')['Age'])
Run Code Online (Sandbox Code Playgroud)

选项 2:使用合并

df2.merge(df1[['Name', 'Age']], 'left')
Run Code Online (Sandbox Code Playgroud)

无论哪种方式你得到

    Name    Score1  Score2  Score3  Age
0   Dan     A       C       C       21.0
1   Paty    B       A       B       24.0
2   Marcus  C       D       B       18.0
3   Zoe     A       A       B       NaN
Run Code Online (Sandbox Code Playgroud)