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

pandas批量读取CSV合并时出现ParserError: EOF inside string错误求助

问题原因

该ParserError报错是读取CSV过程中,检测到某行存在未闭合的字符串,直到文件末尾(EOF)都未找到配对的引号触发的,通常由单文件损坏、末尾行写入不完整、文件存在特殊转义字符导致。
另外你的现有代码存在一处变量名错误:你存储所有DataFrame的列表名为all_csv,但pd.concat方法传入的参数为li,运行时会额外触发NameError。

解决方案

1. 调整CSV读取参数兼容异常格式

修改pd.read_csv的参数,关闭引号识别、跳过异常行即可解决解析报错:

import glob  
import pandas as pd

path = "/Users/LAI/Downloads/learn/engagement_data"  
all_files = glob.glob(path + "/*.csv")  

all_csv = [ ]  
for filename in all_files:  
    df = pd.read_csv(
        filename, 
        index_col=None, 
        header=0, 
        sep=',',
        quoting=3, # 完全关闭引号识别,从根源避免未闭合引号报错
        on_bad_lines='skip', # 自动跳过格式损坏的行
        engine='python' # 可选:C引擎对异常格式兼容性差时换用Python引擎解析
    )  
    all_csv.append(df)

2. 修复concat方法的参数错误

将concat行的变量名修正为存储DataFrame的列表名:

engagement_df = pd.concat(all_csv, axis=0, ignore_index=True)

3. 大文件读取优化(可选)

如果你的CSV文件体积过大,建议开启分块读取避免内存溢出:

chunk_size = 10**6 # 可根据本机内存调整单次读取行数
all_csv = []
for filename in all_files:
    for chunk in pd.read_csv(
        filename, 
        index_col=None, 
        header=0, 
        sep=',',
        quoting=3,
        on_bad_lines='skip',
        chunksize=chunk_size
    ):
        all_csv.append(chunk)
engagement_df = pd.concat(all_csv, axis=0, ignore_index=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:39:05