Python自动化小技巧11——excel文件的文字内容筛选

上一期讲述了怎么讲多个excel多sheet表进行批量合并,本次案例就是来讲讲合并之后对数据进行清洗整理的过程,筛掉无用的数据。

这个案例中博主是处理文本,主要是各大平台上的新闻的文字。筛选就是把那些无用的主题的新闻给去掉,我采用的是硬编码规则,即给定几个关键词,文章内容只要出现这个关键词,就把这条新闻删掉。

这和机器学习人工智能的方法当然有很大差距,但是在一些工作情况下当然会用的上,比如领导让你找包含什么什么关键词的新闻,如果用excel查找然后再一条条复制粘贴也太慢了.......这种重复性的劳动应该就让脚本来。


查看数据:

 可以看到这个新闻的数据都是文字,我们主要对正文这一列进行筛选。

至于对什么关键词进行筛选,那就是看业务需求了,我这里需要的是金融风险的新闻,所以是对一些广告、政府公告,例如:“”开展xxxx风险排查处置攻坚战专项行动“”这种新闻都要去掉。


定义关键词:

import pandas as pd
name = '合并数据'
df = pd.read_excel('%s.xlsx'%name)
df.drop(df[pd.isna(df['正文'])].index, inplace=True)
key_words= ['提供担保','招聘','到店自提','招标','动画更新','箴言','法律援助','无惧暴雷','跌停板','早报','特卖',
              '上海保险交易所','白条','民政局','豪门','法援','断崖式','发布通知','加盟品牌','快讯','报名通道','防诈骗教育',
              '本站是提供个人知识管理的网络存储空间','农村局','中国邮政','采购','必备收藏','免费订阅','业绩暴雷','脱贫攻坚',
              '魔兽世界','免费法律咨询','个股','免费无条件领取','娱圈揭秘','寻亲','物流专线','热点播报','乡村振兴','强化特训营',
              '球队','中超','电影','华夏幸福','游民评测','游戏','免费景点','关注上方平台二维码','游玩特价','法维',
              '小梨导师','回本计划','大乐透','实操测评','晋江','圣经','味蕾','食材','竞价地址','起拍价','情感语录','法律咨询','特色课程',
              '公务员','挂牌','鸿丰环球','人民法院','党史','耶稣','观世音','每日资讯','全面启动','开售理财产品一览','课程资源',
              '研究报告','斗鱼','虎牙','每日早播','英语','围炉夜话','税务','装修公司','套餐包含','开盘跌停','我要领养','中报暴雷',
              '会员卡','指挥部','推荐理由','电视剧','房源','壁纸','wifi','中报业绩','寻人启事','吴亦凡','娱乐圈','基督','我为群众办实事',
              '热门推荐','美食','实践活动','下面小编','主角光环','早安','加盟店','更健康','质量评测','京东','专项行动',
              '教育部印发','开学工作的通知','查抄','贯彻落实','全面开展','他强调','有关事项通告如下','召开','会议精神','售房','陪嫁',
               '开学时间','国务院','办公厅','抓住关键点','共同富裕','政策落地','教育局','教育厅','病例','文件精神','新冠病毒',
               '比较有优势','全面停止','比较好','比较合适','比较可靠','更可靠','为大家推荐','哪家好','医学','小哈谈教育','有效防范',
               '正式宣布','动真格','都不陌生','我只能说','记得我','管理厅','启动仪式','大家都知道','哪个机构','报志愿','条件已发布',
               '报考条件','明显成效','治理工作','报名入口','留言给','小编总结','关注导航','实施意见','教委发布','安全意识','工作开展',
               '热点背景','圆满结束','交流大会','如果说','哪家机构','如何选','专项整治','全面实施','加快推进','推进落实','防电信诈骗',
               '报考学历要求','高顿研招网','成绩公示','予以公','高质量发展','即可下单','不忘初心','砥砺前行','今日话题','精神文化生活',
               '原创文章','谈婚论嫁','拆迁','缴纳社保','圆满落幕','成功举办','组织部','深入贯彻','警告处分','恋爱关系','加盟方式',
               '散户','报名方式','新闻发布会','传感器','央视新闻','表情包','留言讨论','微淼','包过户','恋爱劈腿','实际控制人','离婚',
               '残疾预防','社保费用','设计','装修风格','百年大计','哪家培训机构','编推荐','雨天气影响','进一步落实','修成正果',
               '在线答疑','高绩效教练','驾驶人','长按识别','为全力做好','关注我们','年度寄语','教育部曝光','新闻热线','宣讲电信诈骗',
               '正在报名中','发挥积极','阿联酋','点击关注','购房合同','正式启动','生育率','概念股','项目建设','金融消保大咖说','恒大',
               '顺利开展','文末领福利','上面蓝','上方扫码','百度云盘下载','法典条文','碧缇福','即将开课','即日起报名','开放三胎','供给侧改革',
               '优惠客服微信','疫苗','代餐粉','点上方蓝','一键关注','代理加盟','总经销商','会员代理','火热报名中','安全驾驶','进展公告',
               '清大燕园','长按扫码','培训现场','幽默笑话','快来参考','实拍图','主要措施','为您服务','访问的太频繁','印发的','一起加油',
               '链接下单','方案发布','健康发展','政审批','旨在净化','民法典','民族文化','关于加强','每日一练','关于征求','房产租售','交易公告',
               '健康养生','特别赠送','香涛书院','为丰富','每日分享','哪个网校好','交警提醒','关于公','哪些好','连锁加盟','践行普惠','公告日期',
               '手游下载','招生电话','实施条例','制度改革','登记表','公示表','被罚','每日积累','每日考点','操作指南','正式实施','招募说明书'
               '郑重提醒','联合印发','指导意见','进一步加强','首次举办以来','文章最底部添加本人连系方式','快来看看吧','防骗短片','免费送',
               '投资者提问','返租','利率定价','欧莱雅','皇帝','独家爆料','背景文案','下载提取码','次第花开','穷人虽穷','广场停业','说的没错',
               '品牌策划','熊三','音频解说','蓝洞新消费','外电报道','家政','嫖娼','宝宝','充电桩','近日印发','全线下跌','较为寒冷','两千年历史']

前几行读取数据,然后对正文这列去个重,然后定义一些关键词列表,我这里关键词有点多.....大家都可以按自己要求来定义。

def check(txt):
    for key_word in key_words:
        if key_word in txt:
            a=False
            break
        else:
            a=True      
    return a

lis_bool=df['正文'].astype('string').apply(check)
df[lis_bool].to_excel('清洗数据.xlsx',index=False)

筛选

然后定义一个函数,循环关键词,若关键词在里面,就返回False,不在就返回True。

用这个函数apply给要处理的列,得到的布尔序列对df进行索引,留下来的就是为True的行,也就是没有关键词的行。

最后进行存储就可以了。

运行之前数据: 

运行之后的数据:

 可以看到数据明显被筛走了一半,现在剩下的新闻都是没有关键词的。

如果想反过来,只留下存在关键词的新闻,那么就把定义的check函数里面的条件判断的位置里面的a=True和a=False进行调换就行。

  • 8
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阡之尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值