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

如何使用Python遍历含HTML文本的列去标签并新增列存储干净文本

批量清洗DataFrame中HTML标签的实现方案

依赖安装

首先确保已安装所需工具库:

pip install pandas beautifulsoup4 lxml

步骤实现

1. 封装HTML清洗函数

把你已有的单文本清洗逻辑封装为可复用的函数,同时处理空值、解析异常等边界情况,避免批量运行时报错:

import pandas as pd
from bs4 import BeautifulSoup
from html import unescape

def clean_html(html_text):
    # 处理空值、非字符串类型的异常场景
    if pd.isna(html_text) or not isinstance(html_text, str):
        return html_text
    try:
        soup = BeautifulSoup(unescape(html_text), features='lxml')
        return soup.get_text(separator=' ')
    except:
        # 解析异常时直接返回原文本避免数据丢失
        return html_text

2. 批量处理多列并追加新列

方案1:手动指定需要清洗的列

如果你明确知道哪些列包含HTML标签,直接定义列名列表批量处理即可,清洗后的新列默认以原列名_cleaned作为后缀追加:

# 替换为你实际需要清洗的列名
need_clean_cols = ['列1', '列2', '列3']

for col in need_clean_cols:
    df[f'{col}_cleaned'] = df[col].apply(clean_html)

方案2:自动识别所有字符串类型列清洗

如果不确定哪些列含HTML标签,可以自动筛选所有字符串类型的列批量处理:

# 自动筛选所有object类型(字符串存储默认类型)的列
need_clean_cols = df.select_dtypes(include=['object']).columns.tolist()

for col in need_clean_cols:
    df[f'{col}_cleaned'] = df[col].apply(clean_html)

效果对照

  • 原始数据表:
    原始数据表
  • 目标效果表:
    目标效果表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:36:02