解决pd.read_csv的utf-8解码错误:无法解码字节0xa0问题
解决CSV文件UTF-8解码错误的方案
出现'utf-8' codec can't decode byte 0xa0...错误,是因为你的CSV文件并非UTF-8编码,0xa0是不间断空格字符,常见于Windows系统的cp1252或latin-1编码中。以下是几种可行的解决方法:
方法一:直接指定常见编码尝试
直接在pd.read_csv()中添加encoding参数,优先尝试cp1252或latin-1:
from google.colab import drive import pandas as pd drive.mount('/content/drive') path = "/content/drive/MyDrive/Colab Notebooks/Meteo.csv" # 尝试cp1252编码(Windows环境下生成的文件常用) Meteo = pd.read_csv(path, parse_dates=[['Date', 'Time']], encoding='cp1252') Meteo.head()
如果上述代码仍报错,换用latin-1编码试试:
Meteo = pd.read_csv(path, parse_dates=[['Date', 'Time']], encoding='latin-1')
方法二:自动检测文件编码
如果不确定具体编码,可以用chardet库自动检测:
# 先安装chardet工具库 !pip install chardet import chardet import pandas as pd from google.colab import drive drive.mount('/content/drive') path = "/content/drive/MyDrive/Colab Notebooks/Meteo.csv" # 读取文件前10000字节检测编码 with open(path, 'rb') as f: detect_result = chardet.detect(f.read(10000)) # 打印检测到的编码 print(f"检测到的文件编码:{detect_result['encoding']}") # 使用检测到的编码读取文件 Meteo = pd.read_csv(path, parse_dates=[['Date', 'Time']], encoding=detect_result['encoding']) Meteo.head()
内容的提问来源于stack exchange,提问作者Ili
相关产品推荐
相关产品推荐

