pandas.read_csv读取含双引号字段的CSV文件列拆分异常如何解决
解决pandas读取CSV时引号包裹字段列拆分异常方案
直接使用如下配置的读取代码即可解决问题:
import pandas as pd import csv df = pd.read_csv( "Syrian Arab Republic - Food Prices.csv", quotechar='"', # 明确指定字段的包裹字符为双引号 quoting=csv.QUOTE_MINIMAL, # 告知pandas仅对被特殊字符包裹的字段做转义处理 encoding="utf-8", on_bad_lines="warn" # 异常行会触发警告方便定位问题,也可改为"skip"直接跳过异常行 )
补充说明
- 本次拆分错误的原因是第8列用双引号包裹,默认读取时未明确指定引号处理规则,导致pandas误将引号内部的特殊字符识别为列分隔符,出现多拆分列的问题。
- 如果配置以上参数后仍存在少量行拆分异常,可以手动指定全部列名强制对齐列数,参考示例如下(对应样例的字段顺序):
col_names = [ "date", "admin1", "admin2", "market", "lat", "lon", "category", "commodity", "unit", "price_flag", "currency", "price", "usd_price" ] df = pd.read_csv( "Syrian Arab Republic - Food Prices.csv", quotechar='"', quoting=csv.QUOTE_MINIMAL, encoding="utf-8", names=col_names, header=0 # 跳过原表头行,使用自定义列名 )
内容的提问来源于stack exchange,提问作者Ibrahim Shaban
相关产品推荐
相关产品推荐

