将谷歌云盘数据导入Google Colab时遇Unicode解码错误求助
解决CSV导入Colab时的UnicodeDecodeError问题
问题重现
执行以下代码从谷歌云盘导入CSV文件时触发UnicodeDecodeError:
import pandas as pd from google.colab import drive drive.mount('/content/drive') Webshop_train_2023 = pd.read_csv("/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv")
错误核心提示:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 2786: invalid continuation byte
解决方案
1. 指定匹配的编码格式
pandas默认用UTF-8编码读取文件,但你的CSV文件大概率使用了其他编码(比如Latin-1/ISO-8859-1,0xe7对应该编码中的字符ç,常见于欧洲语言文件)。尝试指定编码:
Webshop_train_2023 = pd.read_csv("/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv", encoding='latin-1')
如果无效,可尝试Windows系统常用的cp1252编码:
Webshop_train_2023 = pd.read_csv("/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv", encoding='cp1252')
2. 跳过或替换解码错误字符
若无需保留所有特殊字符,可直接处理解码错误:
- 忽略无法解码的字符:
Webshop_train_2023 = pd.read_csv("/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv", encoding_errors='ignore') - 用占位符替换错误字符:
Webshop_train_2023 = pd.read_csv("/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv", encoding_errors='replace')
3. 自动检测文件编码
若不确定文件编码,可使用chardet库自动识别:
- 安装chardet:
!pip install chardet - 检测文件编码:
import chardet file_path = "/content/drive/MyDrive/Thierry /Titi /Webshop_train_2023.csv" with open(file_path, 'rb') as f: encoding_result = chardet.detect(f.read()) print("检测到的编码:", encoding_result['encoding']) - 使用检测到的编码读取文件:
Webshop_train_2023 = pd.read_csv(file_path, encoding=encoding_result['encoding'])
内容的提问来源于stack exchange,提问作者Michel Peasy
相关产品推荐
相关产品推荐

