日常办公中,我们经常会遇到需要匹配表,匹配对应数据的场景,在EXCEL中,我们习惯使用VLOOKUP函数或者是X-LOOKUP函数,今天学习的是Python,pandas库中的匹配功能。

首先导入所需的pandas库。

import pandas as pd

用到的模拟数据共三张表,分别是销售表,区域表,负责人表。

模拟数据:销售表

模拟数据:区域表

模拟数据:负责人表

第二步:设置文件路径,并读取文件

File_path = r"E:/360MoveData/Users/B/Desktop/实验表.xlsx"       #数据源路径
File_output = r"E:/360MoveData/Users/B/Desktop/实验表输出.xlsx" #数据输出路径
sale_sheet = pd.read_excel(File_path,"销售表") #读取销售表
region_sheet = pd.read_excel(File_path,"城市区域表") #读取城市区域表
person_liable_sheet = pd.read_excel(File_path,"负责人表") #读取负责人表

第三步:利用merge函数进行查询,第一参数为目标表,第二参数为查询表,第三参数为两表的连接主键,需要列名一致,第四参数是连接模式,left代表左外连接,也就是我们熟悉的VLOOKUP。

#利用城市查询区域

data = pd.merge(sale_sheet,city_sheet, on = "城市" ,how = "left")
print(data.head())

  输出如下

#利用区域查询负责人

data2 = pd.merge(data,person_liable_sheet, on = "区域" ,how = "left")
print(data2.head())

  输出如下

第四步:导出文件

data2.to_excel(File_output)

  

得到了最后的匹配完整表。

这里只介绍了merge函数的左外查询功能,此外还有右外、全外等查询模式,可以根据具体的实际情况去学习应用。

以上,我是simone,期待下次分享。

#Python merge函数,pandas库数据查询功能,对标V-LOOKUP的更多相关文章

  1. Python之使用Pandas库实现MySQL数据库的读写

      本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术   对象关系映射技术,即ORM(Object-Relational ...

  2. Python 基础教程 —— Pandas 库常用方法实例说明

    目录 1. 常用方法 pandas.Series 2. pandas.DataFrame ([data],[index])   根据行建立数据 3. pandas.DataFrame ({dic})  ...

  3. python数据结构:pandas(2)数据操作

    一.Pandas的数据操作 0.DataFrame的数据结构 1.Series索引操作 (0)Series class Series(base.IndexOpsMixin, generic.NDFra ...

  4. python做数据分析pandas库介绍之DataFrame基本操作

    怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 这一部分主要学习pandas中基于前面两种数据结构的基本操作. 设有DataF ...

  5. 用python做数据分析pandas库介绍之DataFrame基本操作

    怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 这一部分主要学习pandas中基于前面两种数据结构的基本操作. 设有DataF ...

  6. python数据分析之pandas库的Series应用

    一.pandas的数据结构介绍 1. Series 1.1 Series是由一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据索引构成.仅由一组数据可产生最简单的Series. from p ...

  7. python数据分析之pandas库的DataFrame应用二

    本节介绍Series和DataFrame中的数据的基本手段 重新索引 pandas对象的一个重要方法就是reindex,作用是创建一个适应新索引的新对象 ''' Created on 2016-8-1 ...

  8. YII2-数据库数据查询方法,关联查询with, joinWith区别和分页

    一.ActiveRecord 活动记录 1.with关联查询 例如,查询评论 $post = Post::find()->with('comments'); 等价于以下结果集 SELECT * ...

  9. hibernate-聚合函数分组统计数据查询

    聚合函数: 实例: package Test; import static org.junit.Assert.*; import java.util.List; import org.hibernat ...

  10. python数据分析之pandas库的DataFrame应用一

    DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔型).DateFrame既有行索引也有列索引,可以被看作为由Series组成的字典. 构建Dat ...

随机推荐

  1. typescript开发vue项目二次封装的axios用return Promise.reject(error) 返回异常,提示[Vue warn]: Error in v-on handler (Promise/async)

    二次封装axios时刻意服务端模拟了延迟返回数据的场景,用return Promise.reject(error) 返回异常,报如下错误, [Vue warn]: Error in v-on hand ...

  2. 10. XrmToolBox

    XrmToolBox是一个连接到MicrosoftDataverse的Windows应用程序,可以为任何在MicrosoftDataverse上构建的产品提供了简化定制.配置和操作任务的工具,包括Dy ...

  3. ajax缓存和fiddler——http协议调试代理工具

    1.在ie9下,ajax请求可能会有缓存,需要在请求上一个随机数 如:Math.random(); 2.fiddler2 打开以后可以查看所有的http请求情况,也可以使用本地脚本代替要请求的js文件 ...

  4. Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件

    Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布局.界面切换 [本章]Qt 学习笔记 - 第三章 - Qt的三驾马车之一 ...

  5. java生态下的后端开发都有哪些技术栈?

    前言 我08年毕业,那时(2003-2010)C#还比较时髦的,大学跟着老师进修的,毕业后就从事winform窗体应用程序开发.慢慢的web网站兴起,就转到aps.net开发,再到后来就上了另一艘船( ...

  6. Python学习笔记--高阶技巧(二)

    Socket服务端开发 基本步骤如下: socket客户端开发 基本步骤如下: 1.创建socket对象 2.连接到服务器 3.发送消息 4.接收返回消息 5.关闭连接 正则表达式 基础方法 matc ...

  7. PicList 现已上架Mac App Store 分享下整个上架过程和遇到的问题

    PicList 是一款云存储/图床平台管理和文件上传工具,基于 PicGo 进行了深度二次开发,保留了 PicGo 的所有功能的同时,为相册添加了同步云端删除功能,同时增加了完整的云存储管理功能,包括 ...

  8. MyBatisPlus映射匹配兼容性

    字段映射与表名映射 1.当数据库表名tbl_user与实体类名User不一致时:在实体类上添加 :@TableName("tbl_user") package com.itheim ...

  9. 很强,我终于找到绘制E-R图的正确姿势

    前言 不知道大家是不是和我一样,为了追求速度,开发时一般都是直接建表就干,哪管什么E-R图.直到xxx项目找上你,某某客户要E-R图,提供一下吧.这时候就很烦,从头绘制E-R图成本真的很高,今天我就遇 ...

  10. Python ArcPy批量掩膜、重采样大量遥感影像

      本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件进行批量掩膜与批量重采样的操作.   首先,我们来明确一下本文的具体需求.现有一个存储有大量.tif格式遥感影像的文件夹:且其中除了 ...