You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:如何用Pandas实现类似Excel的VLOOKUP功能

在Pandas中实现类似Excel VLOOKUP的功能

需求说明

你需要把data_01中的Area列,根据Tipe Car和Branch两个键匹配到data_02中,保留data_02的所有行,未匹配到的Area填NaN,这和Excel里的VLOOKUP精确匹配逻辑一致。

实现代码

import pandas as pd

# 定义原始数据
data_01 = pd.DataFrame({'Tipe Car':['A', 'B', 'C', 'D'], 'Branch':['UD', 'UA', 'UK', 'UA'], 'Area':['1A', '1B', '1C', '1D']})
data_02 = pd.DataFrame({'Tipe Car':['A', 'B', 'E', 'F'], 'Branch':['UD', 'UA', 'UK', 'UA']})

# 执行左连接,实现VLOOKUP效果
data_03 = pd.merge(data_02, data_01[['Tipe Car', 'Branch', 'Area']], on=['Tipe Car', 'Branch'], how='left')

# 查看结果
print(data_03)

代码解释

  • pd.merge()是Pandas中用于合并数据的核心方法,对应Excel的VLOOKUP功能
  • how='left'表示左连接:保留左表(这里是data_02)的所有行,只匹配右表(data_01)中符合条件的记录
  • on=['Tipe Car', 'Branch']指定匹配的键列,和Excel中VLOOKUP的查找值对应,用两个列联合匹配能确保结果准确
  • data_01[['Tipe Car', 'Branch', 'Area']]只取data_01中需要匹配的列,避免引入多余数据

输出结果

运行代码后得到的data_03就是你期望的结果:

Tipe Car Branch  Area
0        A     UD   1A
1        B     UA   1B
2        E     UK  NaN
3        F     UA  NaN

内容的提问来源于stack exchange,提问作者Alfin Edo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:57:52