Python3正则表达式清洗Excel文档

本项目中虽然数据量不大,用Excel自带的替换功能也能实现,但是针对上几千条字段去匹配数据的话,Python就明显高效的多,现在开始讲解:

要清洗的是Excel文档中所有字段的地名,

需要清洗数据:

 

 

首先,需要导入xlrd和re包,前者是用来读写Excel文档,后者是正则表达式的包


1
#-*- coding:gbk -*- 2 import xlrd 3 import re 4 5 #打开一个Excel表 6 data = xlrd.open_workbook('/home/kin/company.xlsx') 7 8 #按顺序选择第5张表(sheet) 9 table = data.sheets()[4] 10 11 #循环遍历把表中一列的数据用字符串拼接的形式赋值给字符串变量“temp” 12 temp = "" 13 for x in range(18): 14 #get row_value 15 var = table.row_values(x) 16 temp +=var[0] + "|" 17 18 19 #一定要去除最后一个“|”字符,否则while循环时会认为“空值”完全匹配进入死循环 20 temp = temp[:-1] 21 22 #新建并打开一个xlsx文档,“w”是选择复写,编译码为utf-8 23 file = open("/home/kin/Desktop/z.xlsx","w",encoding="utf-8") 24 25 #选择第二张表 26 table2 = data.sheets()[1] 27 28 #编译正则表达式 29 pt = re.compile(temp) 30 31 32 #可以将num,num2加入循环,print查看num总数,判断是否执行总数 33 num = 0 34 num2 = 0 35 36 #循环遍历 37 for x in range(10000): 38 #get row_value 39 var2 = table2.row_values(x) 40 #var2[0]读取每行第一列元素 41 while pt.search(var2[0]): 42 #group()匹配正则表达式整体结果 43 a = pt.search(var2[0]).group() 44 #将匹配结果用空字符串替代 45 var2[0] = var2[0].replace(a,"") 46 #将处理完的结果赋值给name 47 name = var2[0] 48 #用回车做分隔符写入 49 file.write(name + "\n") 50 #切记flush()方法必须放在while循环局部,不然结果会将所有运算结果从缓存内写入 51 file.flush() 52 53 file.close 54

 结果:

 

转载于:https://www.cnblogs.com/tangh4/p/8451450.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值