Python使用Pandas读取CSV文件后数据集显示混乱如何解决?
读取CSV乱码修复方案
该问题由CSV文件编码与pandas默认读取编码不匹配导致,可通过以下方法修复:
- 优先尝试指定Windows平台常用编码读取,国内导出的CSV文件默认编码多为
gbk,部分带BOM头的文件需要使用utf-8-sig编码:
import pandas as pd # 优先尝试gbk编码 df = pd.read_csv(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', encoding='gbk') # 若gbk读取异常,可依次替换为以下编码尝试 # df = pd.read_csv(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', encoding='utf-8-sig') # df = pd.read_csv(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', encoding='gb2312') df.head()
- 若上述常用编码均无法正常读取,可通过chardet库自动检测文件实际编码:
- 先安装chardet依赖:
pip install chardet - 执行编码检测与文件读取:
import chardet import pandas as pd # 读取文件前10000字节检测编码,避免大文件读取耗时过长 with open(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', 'rb') as f: detect_res = chardet.detect(f.read(10000)) file_encoding = detect_res['encoding'] # 使用检测到的编码读取文件 df = pd.read_csv(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', encoding=file_encoding) df.head()
- 若文件存在少量不可识别的特殊字符导致读取报错,可临时添加
encoding_errors='ignore'参数忽略异常字符(该操作会丢失无法识别的字符,仅建议临时排查使用):
df = pd.read_csv(r'C:\Users\San\TEMP OLSTP MECH AMT.csv', encoding='gbk', encoding_errors='ignore')
内容的提问来源于stack exchange,提问作者Anwar San
相关产品推荐
相关产品推荐

