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

Pandas读取CSV报Error tokenizing错误 数据未分列自动处理方案

问题原因
  • ParserError触发逻辑:目标CSV前7行为无固定结构的实验元数据注释行,pandas默认从首行开始解析时,会将单行注释识别为仅1个字段的内容,读取到第8行正式表格行时检测到2万+字段,字段数不匹配直接抛出解析错误。
  • 指定制表符分隔后数据未拆分的原因:该类单细胞转录组RSEC_MolsPerCell标准输出文件为逗号分隔格式,分隔符指定错误会导致整行内容被识别为单个字段,无法按列拆分。
可复用实现方案

单文件正确读取代码

核心配置为跳过前7行注释、指定正确的逗号分隔符,可按需设置行索引适配单细胞分析流程:

import pandas as pd
import os

file_path = '/Users/csb/Desktop/Zebrafish_scRNA/sample_Control_WTA_1_RSEC_MolsPerCell.csv'
mat = pd.read_csv(
    file_path,
    skiprows=7, # 跳过前7行非数据注释内容
    sep=',', # 明确使用CSV标准逗号分隔符,替换之前错误的制表符配置
    index_col=0 # 可选:将首列(基因ID/细胞Barcode列)设为行索引,符合单细胞矩阵常规使用格式
)

# 校验读取结果
print(f"数据读取完成,维度为{mat.shape[0]}行 × {mat.shape[1]}列")

批量处理同格式文件代码

遍历目标目录下所有符合命名规则的表达矩阵文件,统一参数读取后存入字典,适配批量分析场景:

data_dir = '/Users/csb/Desktop/Zebrafish_scRNA/'
matrix_collection = {} # 存储所有样本矩阵,key为文件名,value为对应Pandas DataFrame

for filename in os.listdir(data_dir):
    # 仅筛选目标格式的MolsPerCell文件,避免读入目录下其他无关文件
    if filename.endswith('_RSEC_MolsPerCell.csv'):
        full_file_path = os.path.join(data_dir, filename)
        print(f"开始读取样本:{filename}")
        matrix_collection[filename] = pd.read_csv(
            full_file_path,
            skiprows=7,
            sep=',',
            index_col=0
        )
        print(f"{filename}读取完成,数据维度:{matrix_collection[filename].shape}")

兼容提示:若遇到个别非标准分隔符的输出文件,无需手动排查分隔符类型,可将read_csv的分隔符参数替换为自动检测配置,替换原有sep参数即可:

sep=None,
engine='python'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:42:25