提问人:user202135 提问时间:7/23/2023 更新时间:7/23/2023 访问量:29
如何使用 pd.read_csv 和 pd.to_csv 标准化来自不同网络源的正确编码?
How do I standardize correct encoding from differnets sources with pd.read_csv and pd.to_csv?
问:
“我使用熊猫读取来自不同来源的文件。目前,我正面临葡萄牙语单词“Assembléia”的问题。当我用“utf-8”编码阅读这个词并将其保存在 DataFrame 中时,一切正常。但是,当我将其导出到 CSV 时,单词会更改为“assembléia”。我该怎么办?我尝试将编码更改为“latin1”,效果很好。但是现在,当我尝试使用'latin1'对另一个文件进行编码时,代码会抛出UnicodeEncodeError。
这是 latin1 的示例
data = {'Palavra': ['assembléia']}
df = pd.DataFrame(data)
nome_arquivo_csv = r'C:\Users\user\OneDrive\Documents\cv - general\palavra_assembleia.csv'
df.to_csv(nome_arquivo_csv, index=False)
在此示例中,CSV 文件显示单词“assembléia”,而不是预期的“Assembléia”。问题很可能
有没有办法标准化文件的所有编码?
答:
0赞
gtomer
7/23/2023
#1
尝试:
df.to_csv(nome_arquivo_csv, index=False, encoding='utf-8')
评论
0赞
user202135
7/23/2023
不起作用...out 保持组装©
0赞
Mark Tolonen
7/23/2023
@user202135 问题在于用于查看 CSV 的工具,而不是 Python。文件写入正确。查看器正在使用错误的编码读取文件。某些查看器(如 Excel)需要编码,这会将前缀写入文件以提示应使用 UTF8 对文件进行解码utf-8-sig
评论
'assembléia'.encode( 'utf-8').decode( 'cp1252')
'assembléia'
UTF-8