Python中vlookup函数功能是什么?

使用pandas的merge或map可实现类似Excel中vlookup的功能。1. merge用于多列匹配,通过on指定键合并数据;2. map适用于一对一映射,利用字典将键值对应到新列。需确保键类型一致以保证匹配成功。

Python本身没有名为 vlookup 的函数,这个功能源自Excel。但在Python中,特别是使用 pandas 库时,可以通过多种方式实现类似vlookup的效果。

什么是vlookup的等效操作?

vlookup在Excel中用于根据某个键值在表格中查找对应的值。在Python中,我们通常使用pandas的 merge() 方法或 map() 方法来实现这一功能。

使用 merge() 实现vlookup效果

当有两个DataFrame,想根据某一列匹配并添加对应信息时,merge() 是最常用的方法。

例如:
  • 有一个订单表包含商品ID
  • 另一个表包含商品ID和对应的商品名称
  • 我们希望将商品名称“查找”并添加到订单表中

代码示例:

import pandas as pd

主表

orders = pd.DataFrame({ 'order_id': [1, 2, 3], 'product_id': ['P1', 'P2', 'P3'] })

查找表

products = pd.DataFrame({ 'product_id': ['P1', 'P2', 'P3'], 'product_name': ['苹果', '香蕉', '橙子'] })

类似vlookup的操作

result = pd.merge(orders, products, on='product_id', how='left') print(result)

使用 map() 实现简单一对一映射

如果只是为某一列添加对应的值(如根据ID加名称),且关系唯一,map() 更简洁。

代码示例:

# 创建映射字典
mapping = products.set_index('product_id')['product_name'].to_dict()

映射到主表

orders['product_name'] = orders['product_id'].map(mapping)

这样就实现了类似Excel中vlookup的功能。

基本上就这些。用 merge 或 map 就能很好地替代vlookup,具体选哪个看数据结构和需求。不复杂但容易忽略细节,比如键的类型要一致,否则匹配不上。