对比excel和python数据分析工具区别,python操作excel库对比
本文主要介绍一个基于Python的比较Excel的小工具,结合循环比较组合列(主键比较列)和示例代码,非常详细的介绍给大家。感兴趣的朋友可以跟随边肖去看一看。
00-1010 1.参数2。效果三。目的实现3360设计一个应用程序GUI来比较两个Excel文件。
思考
目录
一个ODS(旧数据)和一个DWH(新数据)在同一个excel文件的两个表页中生成。设计两个主键。输入主键1和主键2(默认情况下,新旧文件的列名相同)
1.参数
生成的文件数据量相同,每个字段的前10个数据不一样,双方的前10个数据不一样,排除不一样的数据,每个字段的前10个数据不一样。
2.效果
循环比较组合列(主键比较列)pandas处理差异数据,openpyxl处理生成的工作表的数据格式。(先生成数据,再调整格式)配置
进口熊猫作为pd
从openpyxl导入load_workbook
#选择文件路径
path=r c : \ Users \ small classmate \ desktop \ migration _ data _ compari \ comparison file . xls xls # input(选择文件路径3360 )
TargetPath=rC:\Users\小管同学\ desktop \ migration _ data _ comparison _ tool \ target file \ comparison result . xlsx
data _ ODS=PD . read _ excel(r c : \ users \ classmates \ desktop \ migration _ data _ comparison _ tool \ comparison file . xls ,sheet _ name= ods )
data _ dwh=PD . read _ excel(r c : \ users \ students in small tube \ desktop \ migration _ data _ comparison _ tool \ comparison file . xls ,sheet _ name= dwh )
#选择主键
Primarykey=员工编号 #input(选择主键13360 )
主键
#员工编号
一.数据量
输出表1-数据量
Write _ to _ excel _ data volume (data,targetpath) : # cor _ df是要保存的数据帧。
writer=PD . excelwriter(target path,engine= xlsxwriter) #此处使用
Data.to _ excel (writer,sheet _ name= sheet1 ,encoding= UTF8 ,header=false,startcol=0,startrow=2) #从第二行开始dataframe的数据。
workbook=writer.book
1=workbook.add _ format ({#先打包样式,再赋值。
Bold: True,# font bold
Text_wrap: True,#换行?
Valign 3360 底部,#垂直对齐
对齐 3360 中心,#水平对齐
FG _ fg_color: #C5D9F1 ,# ,#单元格背景色
Border 3360 1,# border
})
writer _ sheet=writer . sheets[ sheet 1 ]
#设置宽度
writer _ sheet . set _ column( a : I ,16)
writer _ sheet . set _ column( c : c ,30)
Writer _ sheet.merge _ range (0,0,0,2,比较结果,格式1)
Writer _ sheet.merge _ range (4,2,4,0,数据量差异,format1)
writer_sheet.write(1,0,,format1)
writer_sheet.write(1,1, ODS ,format1)
writer_sheet.w
rite(1,2,DWH,format1)
writer.save()
writer.close()
DataFrame_DataVolume=pd.DataFrame([[DATA_ODS.shape[0]],[DATA_DWH.shape[0]]]).T
DataFrame_DataVolume.columns =["ODS","DWH"]
DataFrame_DataVolume.index=["数据量"]
DataFrame_DataVolume
#writeFileDataVolume(DataFrame_DataVolume,TargetPath)
write_to_excel_DataVolume(DataFrame_DataVolume,TargetPath)
输出表格2–数据量差异合同
if DATA_ODS.shape[0]==DATA_DWH.shape[0]:pass
else:
DATA_ODS_Primarykey=pd.DataFrame(DATA_ODS[Primarykey])
DATA_DWH_Primarykey=pd.DataFrame(DATA_DWH[Primarykey])
df_union = pd.concat([DATA_ODS_Primarykey,DATA_DWH_Primarykey])
# 实现1
df_diff_ODS = df_union.append(DATA_ODS_Primarykey).drop_duplicates(subset=df_union.columns.to_list(), keep=False)
df_diff_DWH = df_union.append(DATA_DWH_Primarykey).drop_duplicates(subset=df_union.columns.to_list(), keep=False)
#DWH多的合同
df_diff_ODS
#DWH少的合同
df_diff_DWH
df_diff_DWH_Data=[]
df_diff_ODS_Data=[]
for i in df_diff_ODS.head(10).values.tolist():
for n in i:
df_diff_ODS_Data.append(n)
for i in df_diff_DWH.head(10).values.tolist():
df_diff_DWH_Data.append(n)
while True:
if len(df_diff_DWH_Data)>len(df_diff_ODS_Data):
df_diff_ODS_Data.append("-")
elif len(df_diff_DWH_Data)< len(df_diff_ODS_Data):
df_diff_DWH_Data.append("-")
elif len(df_diff_DWH_Data)== len(df_diff_ODS_Data):
break
DataFrame_DataVolume_Count_result=pd.DataFrame(df_diff_DWH_Data,df_diff_ODS_Data).reset_index()
DataFrame_DataVolume_Count_result.columns=[DWH多的合同,DWH少的的合同]
DataFrame_DataVolume_Count_result=DataFrame_DataVolume_Count_result.reset_index()
DataFrame_DataVolume_Count_result.columns=[序号,DWH多的合同,DWH少的的合同]
DataFrame_DataVolume_Count_result
from openpyxl import load_workbook
def write_to_excel_Count_result(Data,TargetPath):
df_Old = pd.DataFrame(pd.read_excel(TargetPath)) #读取原数据文件和表
writer = pd.ExcelWriter(TargetPath,engine=openpyxl)
book=load_workbook(TargetPath)
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df_rows = df_Old.shape[0] #获取原数据的行数
Data.to_excel(writer,startrow=df_rows+1, index=False,startcol=0,header=True)#将数据写入excel中的aa表,从第一个空行开始写
writer.save()#保存
write_to_excel_Count_result(DataFrame_DataVolume_Count_result,TargetPath)
到此这篇关于基于Python实现对比Excel的小工具【实现中】的文章就介绍到这了,更多相关Python对比Excel的小工具内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。