Lui*_*uel 14 python excel character-encoding pandas
我正在阅读一个包含多个数字和分类数据的excel文件.name_string列包含外语字符.当我尝试查看name_string列的内容时,我得到了我想要的结果,但外部字符(在Excel电子表格中正确显示)显示的编码错误.这是我有的:
import pandas as pd
df = pd.read_excel('MC_simulation.xlsx', 'DataSet', encoding='utf-8')
name_string = df.name_string.unique()
name_string.sort()
name_string
Run Code Online (Sandbox Code Playgroud)
产生以下内容:
array([u'4th of July', u'911', u'Abab', u'Abass', u'Abcar', u'Abced',
u'Ceded', u'Cedes', u'Cedfus', u'Ceding', u'Cedtim', u'Cedtol',
u'Cedxer', u'Chevrolet Corvette', u'Chuck Norris',
u'Cristina Fern\xe1ndez de Kirchner'], dtype=object)
Run Code Online (Sandbox Code Playgroud)
在最后一行,正确编码的名称应该是CristinaFernándezdeKirchner.有人可以帮我解决这个问题吗?
unu*_*tbu 13
实际上,数据正在被正确解析为unicode,而不是strs.该u前缀表明对象unicode.当打印list,tuple或NumPy数组时,Python会显示repr序列中的项目.因此unicode,您不会看到打印版本,而是看到repr:
In [160]: repr(u'Cristina Fern\xe1ndez de Kirchner')
Out[160]: "u'Cristina Fern\\xe1ndez de Kirchner'"
In [156]: print(u'Cristina Fern\xe1ndez de Kirchner')
Cristina Fernández de Kirchner
Run Code Online (Sandbox Code Playgroud)
其目的repr是为每个对象提供明确的字符串表示.由于隐形或不可打印的字符,unicode的印刷版本可能不明确.
但是,如果您打印DataFrame或Series,您将获得unicodes的打印版本:
In [157]: df = pd.DataFrame({'foo':np.array([u'4th of July', u'911', u'Abab', u'Abass', u'Abcar', u'Abced',
u'Ceded', u'Cedes', u'Cedfus', u'Ceding', u'Cedtim', u'Cedtol',
u'Cedxer', u'Chevrolet Corvette', u'Chuck Norris',
u'Cristina Fern\xe1ndez de Kirchner'], dtype=object)})
.....: .....: .....:
In [158]: df
Out[158]:
foo
0 4th of July
1 911
2 Abab
3 Abass
4 Abcar
5 Abced
6 Ceded
7 Cedes
8 Cedfus
9 Ceding
10 Cedtim
11 Cedtol
12 Cedxer
13 Chevrolet Corvette
14 Chuck Norris
15 Cristina Fernández de Kirchner
[16 rows x 1 columns]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24567 次 |
| 最近记录: |