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

10折交叉验证后读取CSV分类报告无法获取f1-score的问题

解决DataFrame无法访问f1-score列的问题

错误原因

代码里的df.f1-score会被Python解析成df.f1 - score——也就是试图访问DataFrame的f1属性,再减去一个叫score的变量,但你的DataFrame里根本没有f1列,因此触发AttributeError。而accuracy、precision这类列名无特殊字符,用.访问是合法的。

修复方法

直接用方括号包裹列名访问带连字符的列,这是Pandas处理特殊列名的标准方式:

for i in _all_files:
    print(i)
    df = pd.read_csv(i)

    # 替换为方括号访问方式
    saved_column = df['f1-score']
    a = saved_column[5]
    li.append(a)

# 计算10折交叉验证的f1-score均值
mean_f1 = sum(li) / len(li)
print(f"10折交叉验证的f1-score均值:{mean_f1}")

可选方案(重命名列)

如果习惯用.访问列,可以先将f1-score重命名为无特殊字符的名称,比如f1_score:

for i in _all_files:
    print(i)
    df = pd.read_csv(i)
    # 重命名列
    df.rename(columns={'f1-score': 'f1_score'}, inplace=True)
    # 现在可以用点号访问
    saved_column = df.f1_score
    a = saved_column[5]
    li.append(a)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:05:25