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

标签 python pandas dataframe

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

df1 是这样的:

Name    Age    Height
Marcus  18     170
Dan     21     172
Phill   30     165
Paty    24     160
Linda   25     158

df2 是这样的:

Name    Score1    Score2     Score3
Dan          A         C          C
Paty         B         A          B
Marcus       C         D          B
Zoe          A         A          B

我想找到一种方法来选择 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

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

最佳答案

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

选项 1:使用 map

df2['Age'] = df2['Name'].map(df1.set_index('Name')['Age'])

选项 2:使用合并

df2.merge(df1[['Name', 'Age']], 'left')

无论哪种方式,你都会得到

    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

关于python - 在 Python 中使用两个数据框进行简单查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598285/

相关文章:

python - 从 Pandas 的值中获取 N 行

python - 每个进程运行多个蜘蛛 - 不保存输出数据

python - os.openpty() 在 os.seteuid() 从 root 到用户之后不允许操作

python - 为什么 swifter 比 vanilla df.apply 慢?

python - Pandas:如何删除包含无效月/日列组合的行,例如 2 月 30 日?

python - 如何控制matplotlib中图形线条的颜色?

python - 终端和 VS Code 中的 Anaconda 错误

python - 月份的正确顺序 Python

python - Pandas:在滚动窗口中查找最大值并返回最大值行的另一列的总和以及后续四行

python - 使用 Google 协作中的所有可用 RAM 后,您的 session 崩溃