You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决pd.read_csv读取CSV文件时的UTF-8编码错误?

解决pd.read_csv读取CSV时的Unicode编码错误

问题描述

读取main_genre.csv时触发编码错误,报错信息:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 1524: invalid start byte

核心原因是该CSV文件并非UTF-8编码,需指定对应编码格式才能正常读取。

解决方案

1. 尝试常见编码格式

针对报错中的0x8e字节,优先测试以下几种常用编码:

  • Windows默认ANSI编码(cp1252):
    main_genre_df = pd.read_csv('main_genre.csv', encoding='cp1252')
    
  • 韩文编码(euc-kr):
    main_genre_df = pd.read_csv('main_genre.csv', encoding='euc-kr')
    
  • 中文GBK编码:
    main_genre_df = pd.read_csv('main_genre.csv', encoding='gbk')
    

2. 自动检测文件编码(推荐)

如果不确定具体编码,用chardet库自动识别:

  1. 安装chardet:
    pip install chardet
    
  2. 检测编码并读取的完整修改代码:
    import chardet
    import pandas as pd
    
    def task5():
        # 检测main_genre.csv的编码
        with open('main_genre.csv', 'rb') as f:
            encoding_result = chardet.detect(f.read())
        # 使用检测到的编码读取文件
        main_genre_df = pd.read_csv('main_genre.csv', encoding=encoding_result['encoding'])
        
        movies_df = pd.read_csv('movies.csv')  # 若movies.csv也有编码问题,重复上述检测步骤
    
        for genre in main_genre_df.columns:
            # 过滤空值,避免字符串拼接出错
            terms = [term.lower() for term in main_genre_df[genre].tolist() if pd.notna(term)]
            if not terms:
                print(f"{genre}: 无匹配关键词")
                continue
            # 筛选包含关键词的电影,忽略空剧情
            selected_movies = movies_df[movies_df['Synopsis'].str.lower().str.contains('|'.join(terms), na=False)]
            if not selected_movies.empty:
                most_frequent_genre = selected_movies['main_Genre'].value_counts().idxmax()
                print(f"{genre}: {most_frequent_genre}")
            else:
                print(f"{genre}: 无匹配电影")
    

3. 临时跳过错误(不推荐)

仅用于临时调试,添加errors='replace'可跳过无法解码的字符(会丢失部分内容):

main_genre_df = pd.read_csv('main_genre.csv', errors='replace')

注意事项

  • 若movies.csv也出现编码错误,同样用上述方法检测并指定编码。
  • 处理空值可避免str.contains触发报错,提升代码稳定性。

内容的提问来源于stack exchange,提问作者Martin Swift

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:37:31