使用Pandas读取CSV文件时跳过行,如何完整加载所有行?
你的CSV里部分保险公司名称带逗号(比如Clear Blue Insurance Company, Inc.),用pd.read_csv默认配置读取时,会把这些逗号当成列分隔符,导致行的列数不匹配,最终被error_bad_lines=False跳过。给你两个靠谱的解决办法:
方法1:手动读取分割,精准处理带逗号的字段
这种方法能避开解析器的自动错误判断,直接按行处理:
import pandas as pd rows = [] with open("你的文件路径.csv", "r", encoding="utf-8") as f: # 提取表头,忽略末尾空列 header = f.readline().strip().split(", ", 2)[:2] # 遍历处理每一行数据 for line in f: if line.strip(): # 最多分割2次,保证公司名称不会被拆断 parts = line.strip().split(", ", 2)[:2] rows.append(parts) # 转成DataFrame df_insr = pd.DataFrame(rows, columns=header)
方法2:指定多字符分隔符
观察你的CSV,列之间是「逗号+空格」分隔的,直接指定这个分隔符即可,注意要启用Python引擎(C引擎不支持多字符分隔符):
import pandas as pd df_insr = pd.read_csv( "你的文件路径.csv", sep=", ", engine="python", usecols=[0, 1] # 跳过末尾的空列 )
额外提示
新版本Pandas里error_bad_lines已经被弃用了,现在用on_bad_lines="warn"能看到跳过行的警告,但这只是提示,解决不了根本问题,还是得调整解析逻辑。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

