使用pandas读取mnist.csv时出现UnicodeDecodeError错误求助
解决pandas读取mnist.csv时的UnicodeDecodeError编码错误
方法一:指定兼容编码格式
pandas默认用utf-8编码读取文件,你的文件显然不是该编码,先尝试以下常见编码:
- 使用
latin-1编码(兼容所有字节,不会丢失数据):data = pd.read_csv('mnist.csv', encoding='latin-1') - 如果上述无效,尝试
cp1252编码:data = pd.read_csv('mnist.csv', encoding='cp1252')
方法二:检测文件实际编码
用chardet库自动检测文件的真实编码,步骤如下:
- 安装chardet:
pip install chardet - 检测编码:
import chardet with open('mnist.csv', 'rb') as f: detect_result = chardet.detect(f.read()) print("文件编码:", detect_result['encoding']) - 用检测出的编码读取文件:
data = pd.read_csv('mnist.csv', encoding=detect_result['encoding'])
方法三:跳过编码错误(不推荐)
如果只是临时应急,可以忽略无法解码的字节,但可能导致数据丢失:
data = pd.read_csv('mnist.csv', encoding_errors='ignore')
额外建议:直接加载官方MNIST数据集
MNIST通常以二进制格式分发,如果你是自行转换的csv文件出现问题,建议直接用机器学习库自带的接口加载,更可靠:
- 使用sklearn加载:
from sklearn.datasets import fetch_openml mnist = fetch_openml('mnist_784', version=1, as_frame=True) data = mnist.frame - 使用TensorFlow/Keras加载:
from tensorflow.keras.datasets import mnist (x_train, y_train), (x_test, y_test) = mnist.load_data()
内容的提问来源于stack exchange,提问作者Aarush K
相关产品推荐
相关产品推荐

