我想列出所有的电子邮件地址:
dane[(dane.imie == "Rhea") & (dane.email == "[*]@ubusive.com")]下面的代码对我很有效:
dane[(dane.imie == "Rhea") & (dane.email == "Rhea_Whitehouse7703@ubusive.com@ubusive.com")]所以我试着用下面这样的[*]来更改确切的地址Rhea_Whitehouse7703@ubusive.com (来自生成器的假电子邮件地址
我通过添加正则表达式解决了这个问题,但我需要知道如何实现简单的解决方案,提前谢谢!
发布于 2019-05-04 03:33:34
我不是百分之百确定你在找什么,但是,据我所知,你想要提取数据帧中的行,其中包含指定的imie ('Rhea‘表示状态)和以'@ubusive.com’结尾的电子邮件(不管之前是什么)。
因此,在这种情况下(让我们生成一个示例数据帧):
import pandas as pd
dane = pd.DataFrame({'imie' : ['Rhea', 'Rhea', 'Bob', 'Rhea'],
'email': ['Rhea_Whitehouse7703@ubusive.com',
'Rhea_Whitehouse7703@ubusive.com@ubusive.com',
'Bobbybear@ubusive.com',
'Rhea_Whitehouse7703@other.com']})戴恩是:
imie email
0 Rhea Rhea_Whitehouse7703@ubusive.com
1 Rhea Rhea_Whitehouse7703@ubusive.com@ubusive.com
2 Bob Bobbybear@ubusive.com
3 Rhea Rhea_Whitehouse7703@other.com您只需要第0行和第1行。如果您的域始终为'ubusive.com',则简单的方法是:
dane[(dane.imie == "Rhea") & (dane.email.str[-12:] == "@ubusive.com")]这将提供:
imie email
0 Rhea Rhea_Whitehouse7703@ubusive.com
1 Rhea Rhea_Whitehouse7703@ubusive.com@ubusive.com如果您只想要最后一个域(最后一个‘@’之后的域),则正则表达式可能更有用。这..。
search_string = "@ubusive.com"
dane[(dane.imie == "Rhea") & (dane.email.str.extract("(@.*)")[0] == search_string)]...will的结果如下:
imie email
0 Rhea Rhea_Whitehouse7703@ubusive.com并且还提供了容易地改变域名的搜索字符串的自由。
希望这对你有所帮助,或者,如果这不是你想要的,请评论。
https://stackoverflow.com/questions/55963753
复制相似问题