Python3正则表达式清洗Excel文档,,本项目中虽然数据量不
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_value15 var = table.row_values(x)16 temp +=var[0] + "|"17 18 19 #一定要去除最后一个“|”字符,否则while循环时会认为“空值”完全匹配进入死循环20 temp = temp[:-1]21 22 #新建并打开一个xlsx文档,“w”是选择复写,编译码为utf-823 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 = 035 36 #循环遍历37 for x in range(10000):38 #get row_value39 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 #将处理完的结果赋值给name47 name = var2[0]48 #用回车做分隔符写入49 file.write(name + "\n")50 #切记flush()方法必须放在while循环局部,不然结果会将所有运算结果从缓存内写入51 file.flush()52 53 file.close54
结果:
Python3正则表达式清洗Excel文档
相关内容
- ubuntu16 下安装python3.6 和Anaconda3,,1.Python3.
- python慎用os.getcwd() ,除非你知道【文件路径与当前工作
- Python标准库12 数学与随机数 (math包,random包),,作者:
- Python字典和集合,,Python字典(D
- (原)anaconda 的安装与在pycharm中的版本切换,,参考网
- python 安装matplotlib,,Ubuntu安装Ma
- (转)python判断字符串是否为数字或字母,,原文地址htt
- python学习44——数据库之MySQL安装与sql语句基础,,一、
- python中 from xx import,import几种导包的情况,,简单的统
- 21天学习python编程_while语句,,主要内容:小目标:掌
评论关闭