通过Python正则匹配快速统计团购接龙数据

背景:疫情期间,社区团购太过火爆,微信接龙信息登记杂乱无序,手动整理非常费时,不便于后续汇总各居委楼栋订购量以安排配送。亲身经历——这两天团鸡蛋接龙接了将近2天……结束后志愿者处理统计数据到凌晨两点……我想python也许可以解决这个问题。

案例场景还原——

微信接龙原始数据填写存在的问题:
(1)信息缺失,漏行or重复录入。
(2)信息字段顺序个人填写不一致。
如A填:"X盒 XX弄XX室 姓名 手机"
B填“姓名 手机 X盒 XX弄XX室 ”,
填写信息顺序不一致的话,在excel中使用分列也很难处理
(3)填写格式不一致。
如“XX弄XX楼XX室” vs “XX-XX-XX”

Python数据处理——用正则匹配摘出字段信息,信息存入数据框再写入excel。

步骤1:将接龙后的纯文本以单列形式存储在文件input.xlsx的Sheet1中
步骤2:python读数据

import pandas as pd
infname='input.xlsx'
inputdata='Sheet1'
df=pd.read_excel(infname,inputdata,header=None)
df.columns=['line']
df.head(5)

步骤3:正则匹配地址、手机号码

import re
name=[]
addr=[]
addr1=[]
addr2=[]
addr3=[]
phone=[]
num=[]
for i in range(len(df.index)):
    line=str(df.loc[i,'line'])
    line=line[line.find('.')+1:]
    line=line.replace('一','1').replace('零','0').replace('O','0').replace('七','7')

    #手机号码匹配
    pattern1=re.compile(r'[1l][345789]\d{9}',re.X)
    phonetxt=''.join(pattern1.findall(line))
    phone.append(phonetxt)
    if len(phonetxt)==11:
        line=line.replace(phonetxt,'.')
    
    #数量匹配
    pattern2=re.compile(r'[\d]+(?:箱|盒)',re.X)
    numtxt=''.join(pattern2.findall(line))
    num.append(numtxt)   
    if len(numtxt)>=1:
        line=line.replace(numtxt,'')

    #昵称匹配
    line=re.sub(r'[\s+|,|,|.]+','.',line) 
    line=line.strip('.')
    nametxt=line[:line.find('.')]
    name.append(nametxt) 
        
    #地址匹配-弄号室
    line=re.sub(r'[栋|号楼]','号',line) 
    line=line.replace('弄-','弄').replace('号-','号')
    pattern3=re.compile(r'[\d]+(?:-|弄|号)',re.X)
    addrtxt2=''.join(pattern3.findall(line))
    addr2.append(addrtxt2.strip('-'))
    if len(addrtxt2)>=1:
        line=line.replace(addrtxt2.strip('-').strip('号'),'')    

    #地址匹配-室
    pattern4=re.compile(r'[号|-][\d]+',re.X)
    addrtxt3=''.join(pattern4.findall(line)).strip('号').strip('室').strip('-')
    addr3.append(addrtxt3)
    if len(addrtxt3)>=1:
        line=line.replace(addrtxt3,'')  
    
    #地址匹配-小区|路|公寓
    pattern5=re.compile(r'[\u4E00-\u9FA5]{2}(?:小区|路|大楼|公寓)',re.X)
    addrtxt1=''.join(pattern5.findall(line))
    addr1.append(addrtxt1)
    
df['姓名']=pd.Series(name)
df['区域']=pd.Series(addr1)
df['楼弄']=pd.Series(addr2)
df['室']=pd.Series(addr3)
df['手机号码']=pd.Series(phone)
df['数量']=pd.Series(num)
df.head(100)

处理后展示结果如下:

备注:line列为原始数据

步骤4:写入excel,生成一个output.xlsx的excel文件,名为output的sheet中存放着处理过的数据

outfname='output.xlsx'
outputdata='output'
writer=pd.ExcelWriter(outfname)
df.to_excel(writer,outputdata)
writer.save()

打开生成的excel查看结果如下,接着就可以按楼弄排序,让大家对照着核对最终信息(比如重复写了但是两次填写数量不一致的、没有写数量的之类),需要注意仅留一个人收口变更信息。后续派发的时候志愿者就可以根据楼栋集中配送了。

备注:line列为原始数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容