首页 > 解决方案 > Pandas - 删除除列值不匹配电子邮件之外的所有字段

问题描述

我正在尝试使用基于正则表达式的行匹配电子邮件值的现有数据框创建一个新数据框。

import pandas as pd
data= pd.read_excel("path to file")
from validate_email import validate_email
#i wish to get some code as follows, it is not correct, i added it for your reference
new_data_frame = data[data.Email == validate_email('coloumn value')]

我在下面添加参考图片,我正在尝试使用电子邮件获取所有行

删除除电子邮件以外的所有行

谁能提供正确的解决方案?

标签: python-3.xpandas

解决方案


我假设 validate_email 是一个接收电子邮件并返回真/假的函数。在这种情况下,您正在寻找.apply在列、行或框架上应用函数的方法。

看这个例子:

import pandas as pd

def validate_email(email):
    return '@' in email

df = pd.DataFrame({
    'email': ['test@gmail.com', 'nonvalid']
})

new_df = df.loc[df['email'].apply(validate_email)]

print(new_df)

回报:

            email
0  test@gmail.com

推荐阅读