Примените функцию BeautifulSoup к Pandas DataFrame - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть Pandas DataFrame, который я получил от чтения csv, в этом файле есть HTML-теги, которые я хочу удалить. Я хочу удалить теги с BeautifulSoup, потому что это более надежно, чем использование простого регулярного выражения вроде <. *?>.

Обычно я удаляю теги HTML из строк, выполняя

text = BeautifulSoup(text, 'html.parser').get_text()

Теперь я хочу сделать это с каждым элементом в моем DataFrame, поэтому я попробовал следующее:

df.apply(lambda text: BeautifulSoup(text, 'html.parser').get_text())

Но это возвращает следующую ошибку:

ValueError: ('The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().', 'occurred at index id')

1 Ответ

0 голосов
/ 07 ноября 2018

Использование applymap

Ex:

import pandas as pd
from bs4 import BeautifulSoup


df = pd.DataFrame({"a": ["<a>Hello</a>"], "b":["<c>World</c>"]})
print(df.applymap(lambda text: BeautifulSoup(text, 'html.parser').get_text()))

Выход:

       a      b
0  Hello  World

MOREINFO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...