pandas.read_html
的默认行为似乎是将
个字符转换为unicode \xa0
代码:
url = 'http://www.reuters.com/finance/stocks/company-officers/IBM'
ibm = pd.read_html(url, header=0)[0]
ibm.iloc[0,0]
'弗吉尼亚\ xa0Rometty'
我知道我可以使用转换器将这些转换为空格,如下所示:
spacer = lambda s: s.replace(u'\xa0', ' ')
ibm = pd.read_html(url, header=0, converters={'Name':spacer})[0]
ibm.iloc[0,0]
'Virginia Rometty'
对于必须非常普遍的事情,这似乎不必要地复杂化。还有另外一种方法吗?也许是encoding
选项?
答案 0 :(得分:2)
我不认为编码选项会解决这个问题,但你可以摆脱它们。使用str.replace
,您可以删除任何非ASCII并用空格替换它。
ibm['Name'] = ibm['Name'].str.replace('[^\x00-\x8F]', ' ')
或者,只是不间断的空间 -
ibm['Name'] = ibm['Name'].str.replace('\xa0', ' ')