You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中以From为分隔符提取段落并存入DataFrame不同列

提取邮件内容到DataFrame的实现方案

核心思路

先精准提取所有以From :开头的完整邮件条目,再将这些条目转换为DataFrame的独立列。

具体代码实现

import pandas as pd
import re

# 原始文本
raw_text = """This email is confidential dont share with others
From : user1@email,To: reciver1@email.com, Subject:Test1, ******emailBody*********, Regards,User1.
From : user2@email,To: reciver2@email.com, Subject:Test2, ******emailBody*********, Regards,User2.
This email is confidential dont share with others"""

# 提取所有符合格式的邮件内容:匹配从"From :"开始到"Regards,XXX."结束的完整条目
email_entries = re.findall(r'From : .*?Regards,\w+\.', raw_text, re.DOTALL)

# 将提取到的邮件转换为DataFrame的两列
df = pd.DataFrame([email_entries]).T
# 自定义列名
df.columns = ['Email_1', 'Email_2']

print(df)

代码说明

  1. 正则匹配逻辑:r'From : .*?Regards,\w+\.' 确保精准捕获每封邮件的完整内容,re.DOTALL 参数允许匹配包含换行的邮件内容(适配多行邮件场景)。
  2. DataFrame转换:将提取到的邮件列表转为二维数组后转置,直接得到两列结构的DataFrame,无需复杂的拆分拼接。

替代方案(按行处理)

如果每封邮件恰好是单独一行,也可以用更简单的行过滤方式:

# 按行分割文本,过滤出以"From :"开头的行
lines = raw_text.split('\n')
email_entries = [line.strip() for line in lines if line.strip().startswith('From :')]

# 后续DataFrame转换逻辑同上

内容的提问来源于stack exchange,提问作者srikanth mandava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:55:10