如何使用html清理数据框?

2024-04-29 13:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,看起来像这样:

    text
0   "<p>ROA1<\/p>"
1   "<p>Supports de cours<\/p>"
2   "<p>Textes<\/p>"
3   "<p>Bonjour \u00e0 tous,&nbsp;<br><br>J'esp\u0...
4   "<p style=\"text-align:justify;\">Chers appren...
...
295 Rejoignez-moi <a href="/video/liv...
296 "Pr\u00e9sente"
297 Rejoignez-moi dans la réunion <a target='_blan...
298 "<p style=\"text-align:justify;\"><span style=...
299 "<p style=\"text-align:justify;\"><span style=...

我想把课文整理一下。我这样做是为了删除标签之间的所有内容:

df['text'] = df['text'].map(lambda x : re.sub('<[^>]+>', '', str(x)))

现在我尝试使用unescape将unicode字符转换为字符串。例如,我想将“\u00e0”转换为“a”。我不知道如何将此应用于整个数据帧列

更新

我发现了html2text。这似乎很有效:

def html_to_string(text):
  text = html2text.html2text(text)

  return text

输出如下所示:

Bonjour à tous,  
  
J'espère que vous avez bien profité de la pause inter-semestres.  
Nous voici ensemble pour traverser le 2e Semestre.  

这正是我想要的,所以我尝试将其应用于数据帧

df['text'] = df['text'].apply(html_to_string)

但它在数据帧上不起作用,可能我没有正确应用它,以下是输出:

    text
0   "\n\nROA1<\/p>"\n\n
1   "\n\nSupports de cours<\/p>"\n\n
2   "\n\nTextes<\/p>"\n\n
3   "\n\nBonjour \u00e0 tous, \n \nJ'esp\u00e8re...
4   "\n\nChers apprenants,<\/p>\n\n \nVous trouve...
... ...
295 Rejoignez-moi dans la Room [MISSIONS FANNY](/v...
296 "Pr\u00e9sente"\n\n
297 Rejoignez-moi dans la réunion [Marché des gemm...
298 "\n\nBonjour,<\/span> \n \n \nMerci d'\u00e...
299 "\n\nBonjour,<\/span> \n \n \nMerci d'\u00e..

Tags: 数据textdfstyledelaspanesp