我有一个pandas数据框,它有两列:一列包含HTML和小格式标签,如br和&nbsp,另一列名为USEFUL。
我想将HTML列转换为纯文本而不使用“br”标记和&nbsp。 HTML也可能包含其他格式标记,因此使用正则表达式不是一个选项。为不提供数据框外观而道歉。我的格式很糟糕。
提前致谢。
根据这个link,这种方法比方法2快。它需要安装selectolax
模块(使用:pip install selectolax
)。您可以在here中找到使用此模块的更多示例。
from selectolax.parser import HTMLParser
df['string_in_HTML']=data.apply(lambda x: HTMLParser(x['HTML']).body.text(separator=' ').replace('\n',' '),axis=1)
这是我在SO中遇到的最流行的方法,需要安装bs4
模块(使用:pip install bs4
)
from bs4 import BeautifulSoup
df['string_in_HTML']=data.apply(lambda x: BeautifulSoup(x['HTML']).get_text().replace('\n',' '),axis=1)