Френският йероглиф се превръща във въпросителни знаци; панди

Имам csv файл, който съдържа френски знаци/акценти, включително: É, ê, è и т.н., отнасящи се до имена на някои френски градове и улици. Опитах няколко опции за кодиране на функциите read_csv и to_csv в Pandas, включително:

 df=pd.read_csv(FilePath, encoding='latin-1' )

също:

encoding='utf-8'
encoding='latin-1'
encoding='utf-8-sig'
encoding='iso-8859-1'

Също така се опитах да не посочвам никакво кодиране.

Използвам Python 2.7 и модула Pandas. Четох, че Python 3 се справя по-добре с кодирането, но това в момента не е опция.

Френските знаци се превръщат във въпросителни знаци (?), когато изходният файл се отвори в excel или notepad++, и сега поради опит за коригиране на този проблем те започват като въпросителни знаци, когато чета в оригиналния файл или когато отварям този оригинален файл в excel или notepadd++. Преди те се появиха като нормални френски знаци.

Примерни данни и код:

City    Address1_Particule  Address1_Street Address1_StreetType
Montr? V    Des BRISES DU FLEUVE    ALL?
Montr? V    Des BRISES DU FLEUVE    ALL?
Montr? V    Des BRISES DU FLEUVE    ALL?
Montr? V    Des BRISES DU FLEUVE    ALL?

#create dataframe
df=pd.read_csv(FilePath, encoding='latin-1' )

for streetType in StreetTypeList:
    for pretype in StreePreTypeList:
        df[pretype]=''
  # Change street type french from short to long form  and into new column
        df.loc[dfCAS[streetType]=='AV', [pretype]]='AVENUE'
        df.loc[dfCAS[streetType]=='AVE', [pretype]]='AVENUE'
        df.loc[dfCAS[streetType]=='BOUL', [pretype]]='BOULEVARD'
        df.loc[dfCAS[streetType]=='CH', [pretype]]='CHEMIN'

df.to_csv(OutputPath, encoding='latin-1'

Надявам се да създам изходен csv файл, където френските знаци се показват правилно.

Благодаря ви за всяка помощ!


person aguay091    schedule 05.06.2019    source източник


Отговори (2)


Това трябва да работи

df = pd.read_excel(FilePath, encoding='latin1')
person Herve H    schedule 31.08.2020

Мисля, че тази връзка може да е полезна за хората да намерят всички типове кодиране. Моля, вижте тази връзка: https://docs.python.org/3.7/library/codecs.html#standard-encodings

Търсих знаци на чешки език и открих, че следното кодиране трябва да работи за чешки знаци: iso8859_2, iso-8859-2, latin2, L2 (Централна и Източна Европа)

По същия начин други езикови знаци могат да се използват с правилно кодиране от този списък.

person Belal Mood    schedule 01.04.2021