Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >使用正则表达式Pandas Dataframe的电子邮件验证

使用正则表达式Pandas Dataframe的电子邮件验证
EN

Stack Overflow用户
提问于 2022-08-23 11:17:20
回答 3查看 143关注 0票数 1

我想做一个简单的电子邮件验证列表导入电子邮件地址到一个数据库。我只想确保@符号之前有内容,@符号后面有内容,'.‘之后有2+字符。下面是一个示例df:

代码语言:javascript
代码运行次数:0
复制
import pandas as pd
import re

errors= {}

data= {'First Name': ['Sally', 'Bob', 'Sue', 'Tom', 'Will'],
     'Last Name': ['William', '', 'Wright', 'Smith','Thomas'],
     'Email Address': ['sally@gmail.co.uk','bobby123@gmail.com','suewright_123@yahoo.gov','tom.smith23@students.wacs.fl.us','']}
df=pd.DataFrame(data)

这是我用来检查有效电子邮件的表达式:

代码语言:javascript
代码运行次数:0
复制
regex = re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')
def isValid(email):
    if re.fullmatch(regex, email):
      pass
    else:
      return("Invalid email")

这个regex运行良好,但我不知道如何轻松地遍历我的整个df电子邮件地址列。我试过:

代码语言:javascript
代码运行次数:0
复制
for col in df['Email Address'].columns:
   for i in df['Email Address'].index:
      if df.loc[i,col] = 'Invalid email'
           errors={'row':i, 'column':col, 'message': 'this is not a valid email address'

我想把这封无效的电子邮件写到一本名为“错误”的字典里。通过上面的代码,我得到了一个无效的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-08-23 11:32:28

根据你的描述,我可能会

代码语言:javascript
代码运行次数:0
复制
df["Email Address"].str.match(r"^.+@.+\..{2,}$")

如果正则表达式与字符串匹配,str.match将返回True

判断力

  • 字符串^的开始
  • @符号.+之前的内容
  • @符号@
  • @符号.+之后的内容
  • 一个点\.
  • 和2+字符后面的“.”.{2,}
票数 1
EN

Stack Overflow用户

发布于 2022-08-23 11:30:59

Pandas数据格式的美妙之处在于,你几乎从来不需要循环它们--避免循环会显著提高你的速度。

df['Email Address'].str.contains(regex)将返回电子邮件地址列中是否每个观察的布尔序列。

有关更多信息,请查看向量化字符串操作的本章

票数 1
EN

Stack Overflow用户

发布于 2022-08-23 11:29:34

您可以在dataframe上使用.iterrows()迭代行。行包含一系列内容,您可以像字典一样访问列。

代码语言:javascript
代码运行次数:0
复制
for i, row in df.iterrows():
    if not isValid(row['Email Address']):
        print("Invalid email")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73464069

复制
相关文章
为什么不建议你国庆前找工作
最近在面试过程中,以上内容就是简历的问题。打算换工作或正在找工作的朋友,可以参考一下。
李才哥
2019/09/25
3.9K0
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.1K0
为什么从乙方出来的技术人,能在工作中 ‘更猛,更持久’?
在金三银四快过去的时候,谈这个似乎有些不妥。但现为好买财富平台架构部技术总监王晔倞总结了他十多年来的面经及职场经验,发现一个点,特别的有趣,就是:从乙方公司出来的小伙伴,不仅匹配度高、拒offer率低,并从入职后的表现来看,显得 “更猛,更持久”。
养码场
2018/08/10
4720
为什么我不建议你通过 Python 去找工作?
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
黄啊码
2022/06/20
2.8K0
为什么我不建议你通过 Python 去找工作?
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
沉默王二
2020/05/26
2.7K0
不找C++的工作,为什么要学习C++?
许多学编程的认为,特别是新手会觉得:“我又不找c语言的工作,需不需要学c语言?”,就象“我又不找C语言的工作,应不应该学c++”一样;我觉得答案不源于你做不做C++的工作,而取决于你做不做程序编程行业的工作。
诸葛青云
2019/09/11
2.2K0
不找C++的工作,为什么要学习C++?
独家 | 图片主题建模?为什么不呢?!
作者:Maarten Grootendorst 翻译:陈超校对:赵茹萱 本文约3200字,建议阅读5分钟本文介绍了使用图片主题进行建模。
数据派THU
2021/12/17
6000
独家 | 图片主题建模?为什么不呢?!
HHDESK批量重命名功能在工作中的实际运用
笔者自认为有个很好的习惯,每个完成的工作,都会新建一个文件夹,放在工作文件夹下面,并且分类很细,详细命名,方便查找,万一遗忘也没关系,关键字和时间一搜索即可。
恒辉信达技术有限公司
2023/06/16
1720
SEO优化推广工作应该如何展开呢?
据统计,全球500强的公司中,有90%以上的公司在公司网站中导入了SEO技术。然而SEO优化到底做什么?SEO优化是一种过程,他的目的是为了提高网站的流量和质量,实施的渠道是搜索引擎,获得的流量是根据目标关键词搜索结果点击而来的自然流量。
茹莱神兽
2022/02/13
3830
SEO优化推广工作应该如何展开呢?
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
是否能在构造函数,析构函数中抛出异常?
宋凯伦
2018/01/04
3.7K0
HHDESK本地资源管理功能在实际工作中的应用
打开网址,浏览——发布——关闭;看起来简单的只需要点几下鼠标,实际却是繁琐,甚至有时候会漏掉1、2个网站,需要再次检查,一个个排除。 似乎是很合理的流程,很久以来,很多职业、很多人,都是这样做的。 然而HHDESK新版本的更新,让笔者研究出了一个可以精简工作的方法。 只需一次性设置即可。 1.在HHDESK首页点击资源管理,选择本地; 2.选择资源,点击新增; 3.设置名称; 4.在运行栏点击“浏览”,选择您所使用的浏览器; 5.在参数栏将所需要打开的网址复制进去,一行填写一个网址; 6.点击确定。
恒辉信达技术有限公司
2023/07/21
1800
项目成员为什么觉得项目的工作不是他的工作 ?
首先根本原因是人家不会永远是项目的人,项目的临时性,这点没办法改变。所以没有归属感,也没办法改变。
PM吃瓜
2023/03/02
4970
项目成员为什么觉得项目的工作不是他的工作 ?
128 天不上班不工作:照样领工资 9.5 万
原告:北京和风畅想科技有限公司 被告:杜某,男,1988年出生 和风畅想公司向法院提出诉讼请求: 1、判决无须撤销《解除劳动关系通知书》,双方无需继续履行劳动合同; 2、判决和风畅想公司无须向杜某支付自2020年2月29日至2020年7月5日期间工资收入损失95172.41元。 事实和理由: 2020年11月2日,和风畅想公司收到北京市朝阳区劳动人事争议仲裁委员会作出的京朝劳人仲字[2020]第16281号裁决书(以下简称“第16281号裁决书”),和风畅想公司不服该裁决。 不服裁决理由: 一、第1628
云头条
2022/10/09
2.2K0
128 天不上班不工作:照样领工资  9.5 万
webpack的watch选项不工作原因分析
今天尝试将以前创建的一个前端项目改为webpack编译,该项目使用了VueJS v2.0,原来是编写gulp脚本完成构建的。很自然就直接用vue-cli来搞定这个事了。 使用vue-cli创建项目 因为以前用过webpack,而vue-cli创建的项目底层其实还是使用webpack构建的,所以使用起来还是很简单的。 # 使用yarn,这个命令是跟npm兼容的,但速度快很多,而且可以保证依赖包版本的一致性,强烈推荐 yarn install --global vue-cli vue-cli webpack v
jeremyxu
2018/05/10
4.1K0
自动合并工作簿中各工作表数据
合并多表数据是工作中常见的情形。本文介绍一种在Excel及Power BI中不使用任何公式,快速合并一个工作簿中多个工作表的方法。
wujunmin
2021/09/07
1.6K0
自动合并工作簿中各工作表数据
为什么我退出了编程工作
从很小的时候就在印度出生和成长,在那里我们只有少数的职业选择。工程师和医生是很多人的头两个选择。现在,随着互联网的兴起,事情正在发生变化,但是父母期望孩子成为医生或工程师的情况并不少见。
程序那些事儿
2023/03/07
3150
为什么我退出了编程工作
【密码学】为什么不推荐在对称加密中使用CBC工作模式
这篇文章是我在公司内部分享中一部分内容的详细版本,如标题所言,我会通过文字、代码示例、带你完整的搞懂为什么我们不建议你使用cbc加密模式,用了会导致什么安全问题,即使一定要用需要注意哪些方面的内容。
9eek
2023/05/23
3K1
【密码学】为什么不推荐在对称加密中使用CBC工作模式
能在-40℃到50℃范围满血工作,新型锂电池问世
机器之心报道 编辑:陈萍、泽南 以后在北方开电车也不是问题了? 一种新型锂离子电池既可以在零下 40°C 的低温下工作,也可以在 50°C 的高温下工作。这种新型电池阴极使用硫制作,电池可以储存更多的能量。这是来自加州大学圣地亚哥分校(UCSD)的一项新研究。 这种电池可以增加电动汽车在寒冷温度下的行驶里程。此外,它们还可以用于卫星、航天器、高空无人机和潜艇。UCSD 纳米工程教授陈政(Zheng Chen)表示:通过大幅扩展锂电池的可操作窗口,我们可以为电动汽车之外的应用提供更强大的电化学物质。 目前来看
机器之心
2022/07/12
3460
能在-40℃到50℃范围满血工作,新型锂电池问世
点击加载更多

相似问题

统一阴影在编辑器中工作,而在构建中不工作。

24

为什么valign=“底部”不能在火狐中工作,而在IE和Chrome中工作呢?

46

为什么我的UI Button在构建后在编辑器中工作,而在android中不工作呢?

11

为什么我的RegEx在PHP中工作,而在JavaScript中不工作呢?

10

为什么font-lock-fontify-buffer不能在elisp中工作,而在minibuffer中工作呢?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文