将 HTML 个字符转换为 Pandas 数据框中的字符串

Convert HTML Characters To Strings in Pandas Dataframe

我想将 html 个字符替换为数据框中的字符串。

我尝试了下面的代码,但无法更改为 stirng。

import html
html.unescape(data)

这是我的数据框,我该怎么做?

供您参考,此结果来自 API 由 Google 云翻译。

ID A1 A2 A3 1 不知道合不合 其实我也很难理解...不知道合不合我的exp... 2 NaN NaN NaN 3 我认为这是一个正确的网页设计,至少... NaN 这件商品售价 ¥400 或 £4。

如果您没有任何 NaN,那么您可以简单地使用 applymap() 让所有单元格由 html.escape 处理。

因此,如果您认为可以将 NaN 转换为空字符串,则可以使用:

df.fillna("").applymap(html.unescape)

如果你想保留 NaN,那么一个好的解决方案是使用 stack() 将列变成索引的另一个级别,这将抑制 NaN 条目。然后你可以使用 apply() (因为它现在是一个系列,而不是 DataFrame)然后 unstack() 将它恢复到原来的格式:

df.stack().apply(html.unescape).unstack()

但请注意,最后一种方法将删除完全由 NaN 组成的行或列​​,不确定您是否可以接受。

另一种选择是使用 applymap() 但使用 lambda 并且仅将 html.unescape 应用于非 NaN 的项:

df.applymap(lambda x: html.unescape(x) if pd.notnull(x) else x)