繁体   English   中英

读取excel文件时的Pandas数据帧和字符编码

[英]Pandas dataframe and character encoding when reading excel file

我正在阅读一个包含多个数字和分类数据的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

产生以下内容:

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)

在最后一行,正确编码的名称应该是CristinaFernándezdeKirchner。 有人可以帮我解决这个问题吗?

实际上,数据正在被正确解析为unicode ,而不是strs u前缀表示对象是unicode 当打印列表,元组或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

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM