删除所有包含无效电子邮件的记录。 Pandas
Delete all records with invalid email. Pandas
如何删除 Pandas Dataframe 中包含无效电子邮件(没有名称、域、at 符号)的所有记录
我的代码如下:
import re
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
def validate_email(email):
return re.search(regex, email)
all_data = all_data.loc[all_data['Email'].apply(validate_email)]
但我有错误:
KeyError: "None of [Index([ None,\n None,\n None,\n None,\n None,\n <re.Match object; span=(0, 16), match='adam@example.com'>,\n
如何正确操作??
如果您稍微更改验证函数,您的代码就可以工作
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
def validate_email(email):
if re.search(regex, email):
return True
return False
all_data = all_data.loc[all_data['Email'].apply(validate_email)]
首先,您需要在正则表达式之前使用 r
才能使转义字符起作用。
regex = r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
然后,你可以简单地使用str.contains
方法。
all_data = all_data[all_data['Email'].str.contains(regex)]
如何删除 Pandas Dataframe 中包含无效电子邮件(没有名称、域、at 符号)的所有记录
我的代码如下:
import re
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
def validate_email(email):
return re.search(regex, email)
all_data = all_data.loc[all_data['Email'].apply(validate_email)]
但我有错误:
KeyError: "None of [Index([ None,\n None,\n None,\n None,\n None,\n <re.Match object; span=(0, 16), match='adam@example.com'>,\n
如何正确操作??
如果您稍微更改验证函数,您的代码就可以工作
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
def validate_email(email):
if re.search(regex, email):
return True
return False
all_data = all_data.loc[all_data['Email'].apply(validate_email)]
首先,您需要在正则表达式之前使用 r
才能使转义字符起作用。
regex = r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
然后,你可以简单地使用str.contains
方法。
all_data = all_data[all_data['Email'].str.contains(regex)]