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

为何Pandas提示CSV文件指定列不存在,但实际列已存在?

问题原因与解决方案

核心问题

你的CSV文件使用分号(;)作为字段分隔符,但pd.read_csv()默认以逗号(,)分隔,导致整个表格被错误读取为单一列——你打印的"列名"其实是这一列的名称,是所有真实列名用分号拼接的字符串,并非多个独立列,所以代码找不到目标列。另外你指定的selected_columns里有个错误:";doubt_C"多了前缀分号,真实列名是doubt_C。

修正后的代码

import pandas as pd
import pingouin as pg

# 用分号作为分隔符读取CSV,同时用原始字符串避免路径转义问题
data = pd.read_csv(r"C:\Users\HP\Desktop\data analysis\Classeur2.csv", header=0, sep=";") 

# 打印列名验证是否为独立列
print("Column names:", data.columns)

# 修正列名列表,去掉多余的分号前缀
selected_columns = ["doubt_A", "doubt_B", "doubt_C", "doubt_D", "doubt_E"]
missing_columns = [col for col in selected_columns if col not in data.columns]

if missing_columns:
    print("Error: Columns not found in the DataFrame:", missing_columns)
else:
    data_columns = data[selected_columns]
    # 计算Cronbach's alpha
    alpha_score = pg.cronbach_alpha(data=data_columns)
    print("Cronbach's alpha score:", alpha_score)

关键修正点

  • 添加sep=";"参数,告诉pandas用分号分割字段,正确识别所有列
  • 路径改用原始字符串(r"..."),避免反斜杠的转义问题
  • 修正selected_columns中的";doubt_C"为"doubt_C"

运行修正后的代码后,data.columns会输出独立的列名列表,列存在性检查可正常通过,就能顺利计算Cronbach's alpha了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:02:49