如何在Python pandas DataFrame中将拉丁字符转为小写并解决编码问题?
解决Pandas处理CSV字符转小写时的编码乱码问题
问题核心是文件编码读取错误,导致拉丁字符转小写后出现乱码。你的输入字符LetÂ’s ALL ...实际是UTF-8编码下的Letâ’s ALL ...被错误用latin-1解码后的结果,再转小写保存就会出现双重乱码。
解决步骤:
检测CSV文件的实际编码
先用chardet库检测文件真实编码,避免猜编码出错:import chardet with open(data_file, 'rb') as f: encoding_result = chardet.detect(f.read()) print(f"文件实际编码:{encoding_result['encoding']}")用正确编码读取并处理数据
根据检测结果读取CSV,再执行转小写操作:import pandas as pd # 替换成检测出的编码,比如utf-8或utf-8-sig df = pd.read_csv(data_file, encoding='utf-8') df['Quote'] = df['Quote'].str.lower() # 保存时也用相同编码,避免再次乱码 df.to_csv('processed_quotes.csv', encoding='utf-8', index=False)
为什么之前的代码出错?
- 你的CSV文件实际是UTF-8编码,但用
latin-1读取时,会把UTF-8的多字节字符拆成单个latin-1字符(比如â的UTF-8编码是0xC3 0xA2,用latin-1读会变成Â+â)。 - 转小写后保存,这些错误解码的字符再次被处理,就会变成
â’s这类乱码。
内容的提问来源于stack exchange,提问作者userrr1233333
相关产品推荐
相关产品推荐

