我有一个 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')
最佳答案
使用applymap
例如:
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
关于python - 将 BeautifulSoup 函数应用于 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53189494/