将pdsas dataframe列中的HTML转换为纯文本,该列从csv文件读取

时间:2015-11-08 21:20:01

标签: python pandas html-parsing dataframe

我有一个pandas数据框,它有两列: 一列包含HTML和小格式标签,如br和& nbsp,另一列名为USEFUL。

我想将HTML列转换为纯文本而不使用“br”标记和& nbsp。 HTML也可能包含其他格式标记,因此使用正则表达式不是一个选项。 为不提供数据框外观而道歉。我的格式非常糟糕。

提前致谢。

1 个答案:

答案 0 :(得分:1)

方法1:

根据此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)

方法2:

这是我在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)