对比excel python数据分析,python把excel数据对比
现在有两套结构一致的数据,放在80和2000两个文件夹中,文件名字相同,但文件数据不一致
80中的是电子表格文档格式存储,利用读操作读取数据
2000中的是文件格式格式存储,利用安装读取数据
然后对读取到的数据进行对比
第一种对比过后,将相应的子项内容罗列出来:
def比较数据(文件名):file 80=get _ fileName _ from _ dir( F:\ \ 80 )结果FX=[]if fileName in file 80:wb80=xlrd。open _ workbook( 80/ fileName)WB 2000=xlrd。open _ workbook( 2000/ fileName)工作表80 _ 0=wb80。sheet _ by _ index(0)工作表80 _ 1=wb80。sheet _ by _ index(1)sheet 2000 _ 0=WB 2000 value test2=sheet 2000 _ 0 . cell(5,0).价值#表2 #print test ,test2 for i in range(3,8): for j in range(1,13): if(cmp(j,10)!=0):val 80=float(sheet 80 _ 0。单元格(j,I).value) #print str(val80),-,str(j),-,str(i) if(cmp(j,8)==0):val 2000=float(sheet 2000 _ 0。单元格(14,I).value) elif(cmp(j,6)==0或cmp(j,7)==0):val 2000=float(sheet 2000 _ 0。细胞(j 5,I).value)else:val 2000=float(sheet 2000 _ 0。细胞(j 4,I).value)val _ cha=val 80-val 2000 if(CMP(val _ cha,0.0000)!=0): L=[] lx=sheet80_0.cell(j,0).值- sheet80_0.cell(0,I).value L . append(LX)L . append(str(val 80))L . append(str(val 2000))结果FX。追加(L)#表一表示范围(1,20)中的m:val 80 _ 1=float(表80 _ 1。单元格(1,m)).value)val 2000 _ 1=float(sheet 2000 _ 1。细胞(5,m)).value)val _ cha 1=val 80 _ 1-val 2000 _ 1 if(CMP(val _ cha 1,0.0000)!=0): L=[] lx=sheet80_1.cell(1,0).值- sheet80_1.cell(0,m).value L . append(LX)L . append(str(val 80 _ 1))L . append(str(val 2000 _ 1))结果FX。追加(左)返回resultfx else:打印文件名-无80数据def my result(fileName):WB=Workbook()index=0 for d in data:sheet=WB。create _ sheet( sheet str(index))工作表。追加([文件名, 80 , 2000 ])工作表。附加(d)索引=索引1 WB。保存(对比结果. xlsx’)第二种是生成同样的表格结构,然后将差值填入:
r=从目录中获取文件名( F:\\2000新)file 80=get _ filename _ from _ dir( F:\ \ 80 )WB=Workbook()index=0 for I in r:if I in file 80:sheet=WB。create _ sheet( sheet str(index))工作表。附加([I . decode( gbk ), 80 .解码( gbk ), 2000 .解码( gbk)])雷迪_海德=[我,图斑面积,图斑地类面积,线状地物、田坎面积,其中国有土地,其中集体土地]耿荻_ head=[我,耕地,水田,水浇地,旱地,1等,2等,3等,4等,5等,6等,7等,8等,9等,10等,11等,12等,13等,14等,15等]雷迪_科尔=[总面积,农用地,耕地,其中:水田,其中:水浇地,园地,林地,带K面积,其他(包含养殖),建设用地,未利用地]对于t,枚举中的项(雷迪_head): sheet.cell(row=1,col=t1,value=item.decode(gbk ))对于t,枚举中的项(耿迪_head): sheet.cell(row=14,col=t1,value=item.decode(gbk ))对于t,枚举中的项(compareData(i)): if(t!=5):对于m,枚举中的mitem(item):mitem=str(mitem).解码(“gbk”)表。cell(row=m ^ 2,column=t ^ 2,value=mitem) else: for m,mitem in enumerate(item):mitem=str(mitem).decode(gbk) sheet.cell(row=15,column=m ^ 2,value=mitem)index=index 1 else:print I -无80数据wb.save(对比结果kk。xlsx’)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。