Python 从pandas列解码HTML

Python 从pandas列解码HTML,python,html,pandas,decode,encode,Python,Html,Pandas,Decode,Encode,我有一个数据框,其中一列是西班牙语fos US Dolares中的货币名称,即 达拉斯 但它是用HTML编码的,所以我实际上读了“ó”,我找不到任何方法对整个专栏进行解码。这是一个问题,因为我需要导出到.csv后,这会导致麻烦 我尝试了不同的编码/解码库,如beautifulsoup、HTMLParser等 知道问题出在哪里吗?我怀疑您看到的是数据库中的实际内容:“Dó;lares” 您可以按如下方式转换字符串: from html2text import unescape 如果要

我有一个数据框,其中一列是西班牙语fos US Dolares中的货币名称,即

达拉斯

但它是用HTML编码的,所以我实际上读了“ó”,我找不到任何方法对整个专栏进行解码。这是一个问题,因为我需要导出到.csv后,这会导致麻烦

我尝试了不同的编码/解码库,如beautifulsoup、HTMLParser等


知道问题出在哪里吗?

我怀疑您看到的是数据库中的实际内容:
“Dó;lares”

您可以按如下方式转换字符串:

from html2text import unescape
如果要消除重音,请执行以下操作:

unescape("Dólares")

Out[29]'Dolares'
unescape("Dólares", True)

Out[30]: 'Dólares'
或者,如果您想保留口音:

unescape("Dólares")

Out[29]'Dolares'
unescape("Dólares", True)

Out[30]: 'Dólares'
要在保留重音的同时解码整个列,请执行以下操作:

df.Currency = df.Currency.apply(unescape, unicode_snob=True)

您使用了什么代码来尝试?输出是什么?你能发布一些样本数据吗?输入(和输出)的文本编码是什么?您使用的是什么操作系统?@Cyberguille MacOS High Sierra 10.13。2@EvanIm使用MySQLdb从数据库查询(您可以在此处找到代码:)。大多数时候它根本没有解码任何东西。输入数据中的“Dó;lares”来自西班牙语中的“Dólares”一词/我想我有点困惑;HTML不是一种编码,它是一种标记语言。HTML显示的文本使用字符集编码,例如ASCII或UTF-8。现在推荐使用UTF-8,但如果您使用的是Python 2.7,我不确定兼容性有多强。可能是相关的:这是一个诀窍,我遇到了另外一个问题,我想为未来的人补充。我不得不强制转换到str,因为列中的一些值是'NoneType'。很高兴听到这个消息。您可以在
unescape
之前执行
df.Currency=df.Currency.fillna(“”
)。