相信大家都知道excel的vlookup函数,也会运用,这是财务审计工作中经常会用到的函数之一,那用python如何实现这一功能呢?

1.

目标介绍

刀哥想将2017年科目余额表中,应收账款明细的所有客户,以科目编码为索引,把所有客户对应的期初期末及发生额金额引入到2017AR表中。

即获取2017年科目余额表中的“科目名称”、“期初借方”、“期初贷方”、“本期发生借方”、“本期发生贷方”、“期末借方”及“期末贷方”数并引入到与2017AR表科目编码相对应的表格中,如下图。

2017年科目余额表截图

2017AR表截图

2.

代码实现

首先是调用需要用到的库,比如pandas库,它是python处理excel常用的库,它能处理大量表格数据,有非常强大的功能。

1import pandas as pd

2import openpyxl,xlrd

3from openpyxl import Workbook

第二步是读取原始数据来源表,即读取2017年科目余额表,代码如下。

1file_source = r'f:\Python\练习临时存放\实现vlookup功能\科目余额表\2017年科目余额表.xls' #原始数据来源表路径

2df_source = pd.read_excel(file_source) #读取原始数据来源表

第三步是读取导入目标表,即读取2017AR表,此处因科目编码数量多,手动输入不现实,故用代码实现输入读取,代码如下。

1#把所有科目编码写入到df_target中

2file_target = r'f:\Python\练习临时存放\实现vlookup功能\2017AR.xls' #导入目标表路径

3list_ar_code = [] #定义一个应收账款科目编码列表

4workbook = xlrd.open_workbook(file_target) #读取导入目标表

5balance_sheet = workbook.sheet_by_index(0)

6rows = balance_sheet.nrows

7for i in range(1,rows):

8 list_ar_code.append(balance_sheet.cell_value(i,0)) #将每一个科目编码添加到应收账款科目编码列表中

9data = {'科目编码':list_ar_code}

10df_target = pd.DataFrame(data)

第四步是将2017年科目余额表中需索引的全部信息与2017AR表进行合并,即实现vlookup功能,代码如下。

1#需要导入哪些数据,就将哪些数据的列名写上。

2dfneed = df_source[['科目编码','科目名称','期初借方','期初贷方','本期发生借方','本期发生贷方','期末借方','期末贷方']]

3#on='科目编码',表示以“科目编码”进行索引。

4df_target = pd.merge(df_target,dfneed,how='left',on='科目编码')

这里是代码实现的重点,需要索引哪些信息,就把哪些信息对应的列名添加进去即可。

比如本文需要“科目名称”、“期初借方”、“期初贷方”、“本期发生借方”、“本期发生贷方”、“期末借方”及“期末贷方”这些数据,如果还需要“年度”、“会计期间”或其他信息,就把对应的列名添加进去,然后进行数据合并。

最后一步是写入需要索引的信息并生成文件,代码如下。

1#生成文件

2df_target.to_excel(file_target,index=False)

以上所有步骤完成后,最终生成的文件内容如下。

最后的合计数和核对栏是刀哥手动完成的,可以看出合计数与2017年科目余额表原表数据合计数能对上,与科目编码也能对应上,说明引入过来的数据正确。

那多出来的那些科目编码和空白栏是怎么回事呢,那就是刀哥下次要分享的内容,敬请期待,记得点个关注和收藏哦。

学习python,刀哥正在路上,你要一起来吗?欢迎加入刀哥python学习交流群,来一起撸代码吧。

python excel 数据匹配实现vlookup功能_如何用python实现excel中的vlookup功能?相关推荐

  1. python vlookup 模糊_如何用python写excel中的vlookup函数?

    1.背景 Vlookup 函数,可以算是一个数据专员必须要会使用的基本函数了,确实很好用.但是你可能会注意到,Excel 一旦数据量过大,打开都费劲了,何况打开后,你还要输入公式计算,就更费劲了,此时 ...

  2. 'python program'.count('p')的值是_如何用Python分析泰坦尼克号生还率?

    原标题:如何用Python分析泰坦尼克号生还率? 1912年当时世界上最大的豪华客轮泰坦尼克号在处女航中撞上冰山沉没,船上船员及乘客共有2224人,只有710人生还.当灾难突然降临时,所有人的生死瞬间 ...

  3. python缩进的用途和使用方法_如何用Python减少循环层次和缩进的技巧

    本文实例分析了Python减少循环层次和缩进的技巧.分享给大家供大家参考,具体如下: 我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和 ...

  4. python如何绘制两点间连线_如何用 Python 绘制玫瑰图等常见疫情图

    新冠疫情已经持续好几个月了,目前,我国疫情已经基本控制住了,我们会看到很多网站都提供了多种疫情统计图,今天我们使用 Python 的 pyecharts 框架来绘制一些比较常见的统计图. 1. 玫瑰图 ...

  5. python制作微信个人二维码_如何用Python制作微信好友个性签名词云图

    前言 上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来. 1.环境说明 Win10 系统下 Python3,编译器是 ...

  6. 用python输出一张九九乘法表_如何用python输出九九乘法表?有哪些方法?

    大家学了学习python这么久,大概都可以将python融汇贯通使用了吧,今天小编就教大家一个案例,融汇python主要的方法内容,一起来看下吧~ 概述 今天主要介绍如何用Python实现九九乘法表( ...

  7. python用import xlwt出现红字_如何用python处理excel

    最近看到有很多的python课程是教人怎么用python处理excel,我看了一下价格收费还贼高...这么初级毫无水平的操作我的粉丝们就不要花钱去报课程了..我免费教你们怎么做. 首先我们先要安装两个 ...

  8. python 打开excel并在屏幕上呈现_如何用Python打开Excel文件显示其内容?

    要在默认应用程序中打开文件,可以使用import os file = "C:\\Documents\\file.txt" os.startfile(file) 这将在与文件扩展名关 ...

  9. python深度神经网络文本二分类代码_如何用Python和深度神经网络识别图像?

    只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类.快来试试吧! 视觉 进化的作用,让人类对图像的处理非常高效. 这里,我给你展示一张照片. 如果我这样问你: 你能否 ...

最新文章

  1. Windows Server 2012正式版RDS系列④
  2. [D3D] - 用PerfHUD来调试商业游戏
  3. 异步SOCKET与同步SOCKET
  4. ElasticSearch 中的中文分词器该怎么玩?_03
  5. python的*args与**kwargs
  6. 在Excel中插入Flash及解决不能自动播放问题
  7. DevOps实践教程 华为云 系列教程2021 合集
  8. C# 处理图像三种方法对比
  9. c# owc11 双Y轴
  10. js实现删除文章弹窗提示是否确认
  11. php java转换为字符串格式_php array 转json及java 转换 json数据格式操作示例
  12. thinkpad E40 Windows7下安装Ubuntu
  13. python爬取酷狗音乐top500及歌词_爬取酷狗音乐Top500(示例代码)
  14. 开环控制系统与闭环控制系统
  15. 云和恩墨做的是oracle,云和恩墨张中靖:立足Oracle技术,顺应去IOE大势 原创
  16. 2009 雷人记录汇总[转]
  17. Android最全的屏幕适配
  18. 乐高大颗粒作品22:灯塔
  19. 【机器学习】sklearn机器学习入门案例——使用k近邻算法进行鸢尾花分类
  20. 《强化学习》 基本概念和交叉熵方法

热门文章

  1. MySQL运维实战 之 PHP访问MySQL你使用对了吗
  2. 你和大厂的匹配度多高?立马去C认证测试一下,提前备考大厂
  3. 融云任杰:强互动,RTC下一个“爆点”场景|拟合
  4. 那天我去逛街,发现连大编程语言都摆起地摊了……
  5. 集齐最后一块拼图,全栈Serverless时代正式开启
  6. OpenStack绝非昨日黄花 | 人物志
  7. DevOps“兵器”60样,你都会使哪几样?
  8. python sanic orm_基于sanic的微服务框架 - 架构分析
  9. 为啥学java要看那么多东西_编程语言那么多,为啥学Java的人那么多?
  10. tomcat jsvc java_opts_Tomcat 学习笔记(2) - 使用 jsvc 启动tomcat