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

PyCharm中使用Pandas创建DataFrame时出现UnicodeDecodeError错误

解决Pandas导入数据时的UnicodeDecodeError问题

我来帮你搞定这个导入数据时遇到的编码错误!你碰到的这个UnicodeDecodeError提示'utf-8' codec can't decode byte 0xff in position 0,大概率是因为你的数据文件并非UTF-8编码,但Pandas默认用UTF-8去读取,所以才会解码失败。

先看下你遇到的完整错误信息:

File "pandas/_libs/parsers.pyx", line 562, in pandas._libs.parsers.TextReader.cinit
File "pandas/_libs/parsers.pyx", line 790, in pandas._libs.parsers.TextReader._get_header
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

你的导入代码大概是这样的:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 省略其他导入语句
df = pd.read_csv("your_data_file")  # 未指定编码导致错误

下面给你几个实用的解决办法:

  • 指定正确的编码格式
    开头的0xff字节很可能是UTF-16编码的BOM(字节顺序标记),你可以先试试用UTF-16编码读取:

    df = pd.read_csv("your_data_file", encoding='utf-16')
    

    如果是Windows系统下生成的中文文件,也可以尝试gbk或者gb2312编码:

    df = pd.read_csv("your_data_file", encoding='gbk')
    
  • 自动检测文件编码
    如果你不确定文件的具体编码,可以用chardet库来自动检测:
    首先安装chardet:

    pip install chardet
    

    然后运行以下代码检测编码:

    import chardet
    
    with open('your_data_file', 'rb') as f:
        encoding_result = chardet.detect(f.read())
    
    print(f"检测到的编码是: {encoding_result['encoding']}")
    

    最后用检测出的编码去读取数据即可。

  • 用兼容编码临时读入
    如果以上方法都不行,可以试试latin-1编码,它能兼容所有字节,不会报错(可能显示乱码,但至少能读入数据,之后再处理编码转换):

    df = pd.read_csv("your_data_file", encoding='latin-1')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:15:46