Python Pandas 数据框:一列包含特殊 HTML 特殊字符,例如和 < 有没有办法删除它们?

Python Pandas Data Frame: One column contains special HTML spcial characters such as &amp; &lt; Is there a way to remove them?

我这里只是举个例子。有没有办法删除所有特殊字符? (例如,不只是显示 "&amp;" and "&lt;"

发现这个 https://gist.github.com/codeboy/5487eeb1c551d59e2366 比您要求的要多一些,所以我将其修改为:

import re

def parse_text(text, patterns=None): 
    """ 
    modified from above github gist
    delete all HTML entities 
    :param text (str): given text 
    :param patterns (dict): patterns for re.sub 
    :return str: final text 
    """ 
    base_patterns = {"&[rl]dquo;": "", 
                     "&[rl]squo;": "", 
                     "&nbsp;": "", 
                      "&amp;": ""} 
    patterns = patterns or base_patterns 
     
    final_text = text 
    for pattern, repl in patterns.items(): 
        final_text = re.sub(pattern, repl, final_text) 
    return final_text

你可以这样调用它,分配给一个新列,这样你就可以将结果与原始字符串进行比较:

df["column3"] = df["column2"].apply(parse_text)

请注意,patterns 变量可能不完整,您可能需要根据转义 HTML.

中的内容对其进行扩充

我认为下面的内容只需要通过一次文本就可以工作

re.sub("&[a-zA-Z]+?;","",corpus_of_text)

在数据框中,我认为它只是(我认为...)

cleaned_values = df['column2'].str.replace(re.compile("&[a-zA-Z]+?;"),"")