查看原文
其他

Python教学案例|匹配两个excel文件

okeylove 信息科技时代 2024-03-15

Python教学案例|读写excel文件

Python教学案例|合并多个excel文件

windows下安装openpyxl 3.0.0 版本:

win + r #打开运行
cmd #进入黑黑的窗口
pip install openpyxl==3.0.0  -i https://pypi.douban.com/simple #用pip安装,搞定

01

准备好表格及数据

生活中经常会碰到两个excel表格中的数据要根据某个关键词进行匹配,那么如何用Python自动实现这些工作呢?

比如,在文件夹下有如下2个表格:


02

编写代码测试

代码如下:

可直接复制代码如下:

#按行匹配两个excel中的数据,以左边的表为基准
import pandas as pd
exc1 = pd.read_excel(r'D:\test\test1.xlsx')
exc2 = pd.read_excel(r'D:\test\test2.xlsx')

outer=pd.merge(exc1.drop_duplicates(),exc2.drop_duplicates(),left_on='准考证号',right_on='准考证号',how='left')

outer.to_excel(r'D:\test\unn.xlsx',index=False,encoding='utf-8')
print("合并已经完成,请查看~")

打开unn.xlsx,发现成功匹配了两个表格的数据到一个表格里:


03

pd.merge()详解

merge(left, right, how='inner', on=None, left_on=None, right_on=None,  
      left_index=False, right_index=False, sort=True,  
      suffixes=('_x', '_y'), copy=True, indicator=False)

参数说明:

left与right:两个不同的DataFramehow:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inneron : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键left_on:左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。right_on:右侧DataFrame中用作 连接键的列名left_index:使用左侧DataFrame中的行索引做为连接键right_index:使用右侧DataFrame中的行索引做为连接键sort:默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为('_x','_y')copy:默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能indicator:在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)

merge()是将两个表合并在一起,横向合并。纵向合并用的是append()函数。


END

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存