记一个python处理excel数据清洗的实例

背景:公司20万多单订单被代理错误换单,只能根据地址根据相似度模糊匹配,传统的excel的vlookup等方法无法精准定位到准确的订单。

一,安装pip包

pip install xlrd

二、导入包引入对象,进行数据清洗
点击进入该案例excel源文件下载

import  xlrd


book = xlrd.open_workbook('d:/test.xlsx')

sheet1 = book.sheet_by_name('代理数据')
sheet2 = book.sheet_by_name('内部数据')


 

tag = 1
for i in range(sheet1.nrows):
    for j in range(sheet2.nrows):
        address1 = sheet1.row_values(i)[1]  #取代理数据那个表地址
        address2 = address1.split(' ')#把代理数据的地址转换为数组

        address11 = sheet2.row_values(j)[0] #取内部数据表地址
        address22 = address11.split(' ')  # 把内部数据的地址转换为数组

        result = set(address2) & set(address22)  #两个地址取交集
     
     #如果关键词相似度达到3个及3个以上则关联数据。
        if len(result) >= 3 and str(sheet1.row_values(i)[2])[0:5]==str(sheet2.row_values(j)[1])[0:5]:
            with open('d:/user/828716/desktop/US数据更新/mi遗失查看/test2.txt','a') as f:
                result2 = str(sheet1.row_values(i)[0])+'\t'+str(sheet1.row_values(i)[1])+'\t'+str(sheet1.row_values(i)[2])[0:5]+'\t'+str(sheet2.row_values(j)[0])+'\t'+str(sheet2.row_values(j)[1])[0:5]+'\t'+str(sheet2.row_values(j)[2])+'\t'\
                + str(sheet2.row_values(j)[5])
                f.write(result2+'\n')
                print('已匹配%d条'%tag)
                tag+=1

你可能感兴趣的:(python数据分析,python,excel,数据分析)