python-3.x - 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')]
我在下面添加参考图片,我正在尝试使用电子邮件获取所有行
谁能提供正确的解决方案?
解决方案
我假设 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
推荐阅读
- seal - 我将如何检索密文的二进制表示,因为它将存储到磁盘
- c# - 使用 Imagemagick.NET 去除透明度
- php - 您如何计算文件的 content_hash 以用于 Dropbox 的 API?
- mysql - 关系数据库中的数据粒度
- php - 值 meta_query 邮政编码数组
- java - IntelliJ - 自动“内联”外部 JAR
- ruby-on-rails - Webpacker 无法解析 CSS 中的图像路径
- java - 如何从自定义 Gradle 插件中访问其他模块中的类定义?
- javascript - 通过全局变量反应互斥锁
- sql - Oracle SQL 在我的查询中出现错误,缺少右括号,无法弄清楚原因