gpt4 book ai didi

python - 读取excel文件时的Pandas dataframe和字符编码

转载 作者:太空狗 更新时间:2023-10-29 17:31:35 25 4
gpt4 key购买 nike

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

在最后一行中,正确编码的名字应该是 Cristina Fernández de Kirchner。有人可以帮我解决这个问题吗?

最佳答案

实际上,数据被正确解析为 unicode ,而不是 strsu 前缀表示对象是 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

The purpose of the repr是为每个对象提供明确的字符串表示。由于不可见或不可打印的字符,Unicode 的打印版本可能不明确。

但是,如果您打印 DataFrame 或 Series,您将获得 unicode 的打印版本:

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]

关于python - 读取excel文件时的Pandas dataframe和字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com