You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas读取CSV遇ParserError:首行与后续行字段数不符求助

解决Pandas读取列数不一致CSV文件的问题

针对你遇到的首行列数与后续行不一致导致的ParserError,以下几种方法可以完整读取整个文件:

方法1:先获取最大列数再读取

先遍历文件一次,找到所有行中最多的字段数,然后读取时指定对应数量的列,不足的列会自动用NaN填充:

import pandas as pd

# 遍历文件确定最大列数
max_columns = 0
with open('file.csv', 'r') as f:
    for line in f:
        current_cols = len(line.strip().split(','))
        if current_cols > max_columns:
            max_columns = current_cols

# 指定列数读取文件
df = pd.read_csv('file.csv', header=None, names=range(max_columns))

这种方法能保留所有行,且Pandas会自动处理CSV中的引号包裹字段(比如带逗号的字段)。

方法2:先按行读取再拆分

先把每行作为单个字段读入,再按逗号拆分并展开为多列,适合没有带逗号的引号字段的场景:

import pandas as pd

# 按行读取所有内容
df_raw = pd.read_csv('file.csv', header=None, sep='\n')
# 拆分每行并转为多列
df = df_raw[0].str.split(',', expand=True)

这个方法更简洁,但如果字段里包含带逗号的引号内容,会拆分错误,此时建议用方法1或方法3。

方法3:用csv模块预处理后转DataFrame

借助Python标准库的csv模块正确解析所有行(包括带引号的字段),再转为DataFrame:

import csv
import pandas as pd

all_rows = []
with open('file.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        all_rows.append(row)

# 转为DataFrame,自动补全缺失列
df = pd.DataFrame(all_rows)

这种方法兼容性最好,能处理各种CSV格式的边缘情况。

内容的提问来源于stack exchange,提问作者MAJID AHMAD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:03:22