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
相关产品推荐
相关产品推荐

