首页 > 解决方案 > 法语字符变成问号;熊猫

问题描述

我有一个 csv 文件,其中包含法语字符/口音,包括:É、ê、è 等,指的是一些法国城市和街道名称。我在 Pandas 中的 read_csv 和 to_csv 函数上尝试了几种编码选项,包括:

 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或记事本++。在他们以正常的法国角色出现之前。

示例数据和代码:

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 文件。

感谢您的任何帮助!

标签: pythonpandasencodingcharacter-encoding

解决方案


这应该工作

df = pd.read_excel(FilePath, encoding='latin1')

推荐阅读