python - 在电子邮件开始之前获取所有电子邮件和单词
问题描述
我正在尝试解析我的数据集以获取所有电子邮件和电子邮件之前的单词。例如,如果我有这样的一行:
sno text
1 From: m.kro@b.org To: Cha.Sh@dys.com Hi my name is Sam and my email is samwise@gmail.com
然后我想将其捕获为:
sno text emails
1 From: m.kro@b.org To: Cha.Sh@dys.com Hi my name is Sam and my email is samwise@gmail.com [From : m.kro@b.org ,To: Cha.Sh@dys.com, is samwise@gmail.com]
到目前为止我尝试过的解决方案:
我已尝试使用“find_all”功能来获取所有电子邮件,但在电子邮件开始之前获取单词时遇到问题。
df['Full Comments'].str.findall('(\S+@\S+)').str[0]
对此的任何帮助表示赞赏。谢谢你。
解决方案
尝试:
pat = '([\w:]+ [\w\.]+@[\w\.]+)'
df['emails'] = df.text.str.extractall(pat).groupby(level=0)[0].agg(list)
更新:您可以将单词提升为列标题unstack
:
emails = (df.text.str.extractall(pat)
.reset_index('match', drop=True)
.set_index([0],append=True)[1]
.unstack()
)
df = df.join(电子邮件)
输出(没有连接部分):
0 From: To: is
0 m.kro@b.org Cha.Sh@dys.com samwise@gmail.com
推荐阅读
- jquery - 当两个元素具有相同的计数值时,jquery隐藏元素
- java - 从 MongoDB 集合中查询超过 100 万条记录的最佳方法
- android - 访问 SD 卡时出错(没有这样的文件或目录)”文件可用,如设备文件资源管理器的屏幕截图所示
- java - 如何让 NVDA 读取 Swing / GUI 元素
- php - session_start(); 以及如何使用?
- json - Nifi-将json属性转换为executestreamcommand中的变量
- reactjs - 反应:道具数据未传递给子组件
- python - 用户定义的函数不适用于 Pandas
- c++ - glGenVertexArrays 非常慢
- python - 什么是序列化这个 JSON 数据的方法?(Django Rest 框架)