我有一个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文件,法语字符可以正确显示。
谢谢您的帮助!
答案 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(中欧和东欧)
同样可以使用此列表中正确编码的其他语言字符。