使用python将取两张excel表格的差集并输出到另外的表格

该篇博客详细介绍了如何使用Python的pandas库来处理两个Excel表格的差集。首先读取table01和table02的'filename'列,然后将数据转化为集合并计算差集,最后将差集保存为新的Excel文件。通过创建列表、转换为集合、计算差集和将结果写入Excel等步骤,实现了数据的高效处理和对比。
摘要由CSDN通过智能技术生成

在数据处理时,有时我们需要将两张表格的差集进行输出以做下一步的处理
假如,现在有两张表格table01.xlsx和table02.xlsx,要将两张表的“filename”列的差集分别输出到另外的两张表格。
table01:table01
table02:
table02
整体思路:
将两个列中的元素分别作为list1和list2输出——转化为集合set1和set2——使用s1.difference(s2)方法求差集——将差集转化为列表——建立新的excel——列表嵌套字典并转化为dataframe格式保存在新建的excel中
代码如下:

import pandas as pd
import os
os.chdir("E:\\origin_file")
#1.读取表1的filename列
data1=pd.read_excel('table01.xlsx')
col1=data1.iloc[:,0]    #目标字段在table01表格第一列,列序号为0
#或col1=data1['filename']
#2.将table01的“filename”列的元素加入到新建列表中
list1=[]  #新建列表list1
for i1 in col1:
    list1.append(i1)
#3.读取表2的filename列
data2=pd.read_excel("table02.xlsx")
col2=data2.iloc[:,0]   #目标字段在table02表格第一列,列序号为0
#或col2=data2['filename']
#4.将table02的“filename”列的元素加入到新建列表中
list2=[]  #新建列表list2
for i2 in col2:
    list2.append(i2)
#5.将list1和list2分别转化为集合
set1=set(list1)		
set2=set(list2)
#6.取set1和set2的差集
set3=set1.difference(set2)  #table01有table02没有
set4=set2.difference(set1)  #table02有table01没有
#7.差集转化为列表
list3=list(set3)					#table01有table02没有
list4=list(set4)					#table02有table01没有
#8.为两个差集分别建立excel
#table01有table02没有的元素建立的excel
writer1=pd.ExcelWriter('table01-02.xlsx') 
#为table02有table01没有的元素建立的excel
writer2=pd.ExcelWriter('table02-01.xlsx')    
#9.将两个差集列表分别嵌套字典
dict_1={'filename':list3}  #table01有table02没有
dict_2={'filename':list4}  #table02有table01没有
#10.将两个字典分别转化为dataframe格式
df1=pd.DataFrame(dict_1)
df2=pd.DataFrame(dict_2)
#11.分别将两个dataframe格式的差集储存到excel中
#table01有table02没有
df1.to_excel(writer1,'sheet1',startcol=0,index=False)
#table02有table01没有
df2.to_excel(writer2,'sheet2',startcol=0,index=False)
#12.保存两个excel文件
writer1.save()
writer2.save()

结果如下:
table01-02:
table01-02table02-01:
table02-01创作不易,请大家多多点赞,收藏,支持一下!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值