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

批量过滤多CSV文件行时出现KeyError: 'gene'错误求助

KeyError: 'gene' 问题分析与解决

核心错误原因

你脚本里犯了一个关键错误:用delimiter='\t'(制表符分隔)读取CSV文件——CSV默认是逗号分隔的,这会导致pandas把整行内容当成单独一列,自然找不到名为gene的列,直接触发KeyError。

修正后的脚本

# 只保留目标基因并覆盖原CSV文件
import os
import glob
import pandas as pd

path = '/Users/adriana/Library/Documents/raw_data'
all_files = glob.glob(os.path.join(path, "*.csv"))
genes = ["mmp2", "mmp9"]

for file in all_files:
    # 用CSV默认的逗号分隔读取,不要用tab
    df = pd.read_csv(file)
    # 可选:调试用,快速定位异常文件
    if 'gene' not in df.columns:
        print(f"文件 {file} 中未找到'gene'列,跳过")
        continue
    cleaned = df[df['gene'].isin(genes)]
    # 写入时去掉索引列,避免额外添加无用列
    cleaned.to_csv(file, index=False)

额外排查点(若修正后仍报错)

  • 列名大小写问题:检查文件列名是gene还是Gene/GENE,可以读取后打印df.columns确认,再对应调整筛选时的列名。
  • 列名含空格:如果列名前后有空格(比如 gene或gene ),先清理列名:
    df.columns = df.columns.str.strip()
    
  • 分隔符不统一:部分CSV可能用分号(;)作为分隔符,需指定sep=';'读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:33:34