法语字符变成问号;大熊猫

时间:2019-06-05 00:20:15

标签: python pandas encoding character-encoding

我有一个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或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文件,法语字符可以正确显示。

谢谢您的帮助!

2 个答案:

答案 0 :(得分:0)

这应该有效

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

答案 1 :(得分:0)

我认为此链接可能有助于人们找到所有编码类型。请参考这个链接: https://docs.python.org/3.7/library/codecs.html#standard-encodings

我正在寻找捷克语字符,发现以下编码应该适用于捷克语字符: iso8859_2、iso-8859-2、latin2、L2(中欧和东欧)

同样可以使用此列表中正确编码的其他语言字符。