如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能

环境:

python3.8.10

Excel2016

Win10专业版

问题描述:

如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能

先排除两表A列空白单元格,然后匹配x1表格和x2表格他们的A列,把x1表格中A列A1-A810范围对应的B列B1-B810数据,匹配填充到x2范围A1-A479,B1-B479表格B列空格里面,最后数据生成一个新表格。如x1表中A1单元格905对应B1数值是小米,然后到x2表里面找到A列单元格内容905把小米填在B列。

下面是示范表格内容如下
x1表格

A列	 B列
905	小米
726	小3           
904	小4
727	小5        

x2表格

A列	 B列
	
727
905	         
904
726

解决方案:

准备好两表格

在这里插入图片描述2格表里面AB两列要单独命

  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是一个简单的Python函数,可以实现类似Excelvlookup功能: ```python def vlookup(lookup_value, lookup_range, result_range): """ 在lookup_range中查找lookup_value,返回与之对应的result_range值。 如果找不到匹配项,则返回None。 Args: lookup_value (str or int): 要查找的值 lookup_range (list): 查找范围,应该是一个二维表或元组,其中第一是查找值的 result_range (int): 返回值所在的(以0为基础的索引) Returns: 匹配的结果,如果找不到,则为None """ for row in lookup_range: if row[0] == lookup_value: return row[result_range] return None ``` 用法示例: ```python lookup_range = [ ["apple", 1], ["banana", 2], ["orange", 3] ] result = vlookup("banana", lookup_range, 1) print(result) # 输出2 ``` 在这个例子中,vlookup函数在lookup_range表中查找“banana”并返回与之对应的值,即2。如果查找值不存在于lookup_range中,则返回None。 ### 回答2: 可以使用Python编写一段代码来代替Excel表格中的VLOOKUP功能。以下是一个示例代码: ```python def vlookup(lookup_value, lookup_range, return_column): for row in lookup_range: if row[0] == lookup_value: return row[return_column - 1] return "Not found" lookup_table = [ ["A", 1, "Apple"], ["B", 2, "Banana"], ["C", 3, "Cherry"] ] lookup_value = "B" return_column = 3 result = vlookup(lookup_value, lookup_table, return_column) print(result) ``` 在上述示例代码中,首先定义了一个名为`vlookup`的函数。该函数接受三个参数:`lookup_value`,表示要查找的值;`lookup_range`,表示要搜索的数据范围;`return_column`,表示要返回的数。 接着,通过使用一个`for`循环遍历`lookup_range`中的每一行。如果找到与`lookup_value`匹配的值,则返回该行中对应`return_column`的值。 最后,通过给定的示例`lookup_table`、`lookup_value`和`return_column`调用`vlookup`函数,并将结果打印出来。 这段代码可以在Python编译器或者集成开发环境中运行,并且能够实现类似Excel表格VLOOKUP函数的功能。 ### 回答3: 要代替Excel表格中的vlookup功能,可以使用Python编写一个函数,以下是代码段的实现: ```python def vlookup(search_key, lookup_range, return_column): for row in lookup_range: if row[0] == search_key: return row[return_column - 1] return "Not Found" # 示例数据 lookup_data = [ ["Apple", 1.2, "Fruit"], ["Banana", 0.5, "Fruit"], ["Carrot", 0.3, "Vegetable"], ["Orange", 0.8, "Fruit"], ["Cabbage", 0.7, "Vegetable"] ] search_key = "Banana" lookup_range = lookup_data return_column = 2 # 获取第二数据(价格) result = vlookup(search_key, lookup_range, return_column) print(result) ``` 这段代码实现了一个vlookup函数。函数需传入三个参数:搜索键(search_key)、搜索范围(lookup_range)和返回(return_column)。在函数内部,使用for循环遍历搜索范围中的每一行数据,检查搜索键是否与第一匹配。如果找到匹配的行,就返回该行指定(return_column)的数值。如果没有找到匹配的行,则返回"Not Found"。 在代码示例中,我们使用了一个包含水果和蔬菜数据表作为搜索范围(lookup_data)。然后我们以搜索键"Banna"、搜索范围表、返回为2(价格)作为参数调用vlookup函数。最后输出结果0.5,即为查找到的价格。如果输入的搜索键不存在于搜索范围中,则返回"Not Found"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩人工智能的辣条哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值