python df共有几行_还在用Excel的vlookup?Python几行代码就能搞定!

还在用Excel的vlookup?Python几行代码就能搞定,还可以指定输出顺序。

VLOOKUP函数是Excel中的一个纵向查找函数,功能是按列查找,最终返回该列所需查询序列所对应的值。

 然而这样的功能在Excel有点复杂,很多人往往记不住怎么做,本文使用Python的Pandas几行代码就能搞定,还可以按指定的列进行输出。

背景:

  1. 有两个excel,他们有相同的一个列; 

  2. 按照这个列合并成一个大的excel,即vlookup功能,要求:

  • 只需要第二个excel的少量的列,比如从40个列中挑选2个列  

  • 新增的来自第二个excel的列需要放到第一个excel指定的列后面; 

将结果输出到一个新的excel;

输入表格1-学生成绩表:

e3711beb4aa3ed2880f3e82c3c08d6e8.png

输入表格2-学生信息表:

eb9302ab4eb56209fc664162d76e07f1.png

输出表格:按学号列实现了vlookup,并且在指定列后面输出:

fd566d268054e3cf2779b87ad1c9c8d6.png

步骤1:读取两个数据表

import pandas as pd
# 学生成绩表
# 学生信息表

目标:怎样将第二个“学生信息表”的姓名、性别两列,添加到第一个表“学生成绩表”,并且放在第一个表的“学号”列后面?

步骤2:实现两个表的关联

即excel的vloopup功能

# 只筛选第二个表的少量的列
"学号", right_on=

步骤3:调整列的顺序

df_merge.columns
问题:怎样将'姓名', '性别'两列,放到'学号'的后面?

接下来需要用Python的语法实现列表的处理

# 将columns变成python的列表形式
# 按逆序insert,会将"姓名","性别"放到"学号"的后面
for name in ["姓名", "性别"][::-1]:
    new_columns.remove(name)
    new_columns.insert(new_columns.index("学号")+1, name)
new_columns

aa4bbeac34ec00a03495a2db679989c2.png


df_merge = df_merge.reindex(columns=new_columns)
df_merge.head()

c52b39987c89e38d2706c785b0f780e7.png

步骤4:输出最终的Excel文件

df_merge.to_excel("./course_datas/c23_excel_vlookup/合并后的数据表.xlsx", index=False)

请看视频讲解:

本实战视频是Pandas系列中的一集,系列全部请在爱奇艺查看:

2c6e460664310ed006eee5fef9649f38.png

关注我,查看更多Python干货技术视频分享:

b1aa516cc6ba52039ed9b2365073eded.png

喜欢本文的朋友,请帮忙点赞哦^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 pandasmerge 函数实现类似于 Excel vlookup 功能,具体代码如下: ```python import pandas as pd # 读取 Excel 文件 df1 = pd.read_excel('file.xlsx', sheet_name='Sheet1') df2 = pd.read_excel('file.xlsx', sheet_name='Sheet2') # 使用 merge 函数合并 result = pd.merge(df1, df2, on='key', how='left') # 输出结果 print(result) ``` 其,`file.xlsx` 是 Excel 文件名,`Sheet1` 和 `Sheet2` 分别是两个工作表的名称,`key` 是两个共同的名,`how='left'` 表示使用左连接方式合并。 ### 回答2: 在Python引用ExcelVLOOKUP函数需要通过安装openpyxl库来实现。首先,我们需要使用openpyxl库打开Excel文件。然后,选择对应的工作表和数据范围。 接下来,我们可以使用openpyxl的VLOOKUP函数引用操作。该函数的语法如下所示: ``` from openpyxl import load_workbook from openpyxl.utils import quote_sheetname from openpyxl.formula.translate import Translator def vlookup(search_value, search_range, return_col_index, exact_match=True, sheet=None): if sheet is None: sheet = wb.active sheetname = quote_sheetname(sheet.title) formula = f'=VLOOKUP({search_value}, {sheetname}!{search_range}, {return_col_index}, {exact_match})' formula = Translator(formula, origin=sheetname, target=sheetname).translate_formula() return formula # 加载Excel文件 wb = load_workbook('example.xlsx') #选择工作表 sheet = wb['Sheet1'] # 调用VLOOKUP函数 search_value = 'A' search_range = 'A2:B10' return_col_index = '2' exact_match = True formula = vlookup(search_value, search_range, return_col_index, exact_match, sheet) print(formula) ``` 其,`search_value`代表需要查找的值,`search_range`代表数据范围,`return_col_index`代表返回的索引,`exact_match`是一个布尔值,表示是否精确匹配。这段代码会将VLOOKUP函数的结果以字符串形式输出。你可以根据实际需求修改代码的文件名、工作表名、数据范围等参数,从而实现具体的引用操作。 ### 回答3: 在Python引用ExcelVLOOKUP函数可以使用pandas库来实现。首先,需要安装pandas库: ``` pip install pandas ``` 然后,可以按照以下步骤来引用ExcelVLOOKUP函数: 1. 导入pandas库: ```python import pandas as pd ``` 2. 读取Excel文件: ```python data = pd.read_excel('your_file.xlsx') # 替换为你的Excel文件路径 ``` 3. 使用VLOOKUP函数: ```python result = pd.merge(data1, data2, on='column_name', how='left') # 替换相应的参数和名 ``` 其,`data1`和`data2`是需要进VLOOKUP操作的两个表格,`column_name`是用于进匹配的名,`how='left'`表示使用左连接,即保留左表的所有。 4. 输出结果: ```python print(result) ``` 以上步骤代码可以根据具体的需求进调整和修改,以适应不同的VLOOKUP操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值