在数据处理时,有时我们需要将两张表格的差集进行输出以做下一步的处理
假如,现在有两张表格table01.xlsx和table02.xlsx,要将两张表的“filename”列的差集分别输出到另外的两张表格。
table01:
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:
table02-01:
创作不易,请大家多多点赞,收藏,支持一下!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)