如何遍历Pandas DataFrame列调用validate_email完成邮箱校验
Pandas逐行批量校验邮箱列实现方案
直接用Pandas内置的apply方法处理列即可,无需手写显式遍历循环,执行效率更高、代码更简洁,逐行对email列的单个值x执行要求的两项校验逻辑,结果直接写入对应列。
完整实现代码
# 依赖安装(已完成可跳过) # pip install pyDNS # pip install validate_email import pandas as pd from validate_email import validate_email # 构造测试数据集 data = [['sales@infobiz.co.za','True','True'], ['xsales@infobiz.co.za','True','False'], ['sales@infobiz.co.z','False','False']] df = pd.DataFrame(data, columns=['email', 'check_mx', 'verify']) # 执行两项校验逻辑,结果写入对应列 df['check_mx'] = df['email'].apply(lambda x: validate_email(x, check_mx=True)) df['verify'] = df['email'].apply(lambda x: validate_email(x, verify=True)) # 输出最终结果DataFrame print(df)
结果说明
运行后输出的结果和预期完全匹配:
sales@infobiz.co.za:域名有效且配置了MX记录、邮箱账号真实存在,两个校验结果均为Truexsales@infobiz.co.za:域名有效且配置了MX记录,但对应邮箱账号不存在,MX校验结果为True、真实性校验结果为Falsesales@infobiz.co.z:域名无效,两个校验结果均为False
注意:verify=True的真实性校验需要设备网络正常,会向目标邮件服务器发送探测请求判断账号是否存在,大批量校验时建议加延时控制请求频率,避免被目标服务器拦截。
内容的提问来源于stack exchange,提问作者Marcelle de Jager
相关产品推荐
相关产品推荐

