如何从pandas dataframe的HTML格式行数据中提取指定结构化字段
Pandas 脏HTML片段字段清洗方案
你的每行原始数据是带HTML转义实体的标签片段,需要先还原转义字符,再分别提取人名、描述信息两个目标字段,完整处理流程如下:
首先导入依赖库:
import pandas as pd import re import html
第一步先还原HTML转义实体,把<、>这类转义符还原为正常的<、>符号:
# 假设存储原始脏数据的列名为raw_content df['raw_content'] = df['raw_content'].apply(html.unescape)
第二步分别提取两个目标字段:
# 提取name字段:匹配</h2>前的人名内容,将分隔斜杠替换为逗号,清理多余空格 df['name'] = df['raw_content'].str.extract(r'^(.*?)</h2>', expand=False, flags=re.S)\ .str.replace(r'\s*/\s*', ', ', regex=True)\ .str.strip() # 提取information字段:匹配<p>标签后的描述内容,清理首尾空白 df['information'] = df['raw_content'].str.extract(r'<p>(.*)$', expand=False, flags=re.S)\ .str.strip()
如果仅需要保留处理后的结果字段,可执行以下代码过滤:
df = df[['name', 'information']]
上述代码可直接兼容你提供的示例数据,处理后输出的结果和你要求的格式完全匹配。
内容的提问来源于stack exchange,提问作者matheus james
相关产品推荐
相关产品推荐

