programing

Excel 파일을 읽을 때 Pandas 데이터 프레임 및 문자 인코딩

newstyles 2023. 8. 17. 21:00

Excel 파일을 읽을 때 Pandas 데이터 프레임 및 문자 인코딩

저는 여러 개의 수치 및 범주형 데이터가 있는 엑셀 파일을 읽고 있습니다.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)

마지막 줄에서 정확하게 암호화된 이름은 크리스티나 페르난데스 데 키르치너여야 합니다.누가 이 문제를 도와줄 수 있습니까?

실제로 데이터가 유니코드로 올바르게 구문 분석되고 있습니다.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

의 목적은 각 개체에 대해 명확한 문자열 표현을 제공하는 것입니다.유니코드의 인쇄 버전은 문자가 보이지 않거나 인쇄할 수 없기 때문에 모호할 수 있습니다.

그러나 데이터 프레임 또는 시리즈를 인쇄하면 유니코드의 인쇄 버전을 얻을 수 있습니다.

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]

언급URL : https://stackoverflow.com/questions/23594878/pandas-dataframe-and-character-encoding-when-reading-excel-file