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

pandas读取CSV生成DataFrame后访问列报AttributeError问题求助

问题原因

你配置的读取分隔符和CSV实际的分隔符不匹配,导致列名解析错误:
从你输出的df.columns结果可以看出,当前DataFrame只有1个列,列名是完整的,Name,Growth,Recommendation,CurrentRatio,TotalCash,Debt,Revenue,PercentageSharesOut,PercentageInstitutions,PercentageInsiders,PricetoBook,ShortRatio,RegularMarketPrice字符串,自然不存在名为Debt的列属性。
你原本设置的sep='\s{2,}'是匹配2个以上的空格作为分隔符,但你的CSV实际是逗号分隔的,不符合你设置的分隔规则,所以表头整行被识别为单个列名,所有行数据也都被挤在同一列中。

解决方法

  1. 修正read_csv的分隔符参数,CSV默认分隔符为逗号,直接使用默认配置即可:
df = pd.read_csv("watchlist.csv")

如果存在特殊情况需要显式指定,可写为df = pd.read_csv("watchlist.csv", sep=',')。

  1. 读取完成后先验证列名解析是否正确:
print(df.columns.tolist())

如果输出的列表中存在单独的Debt元素,说明解析成功,此时可以正常访问该列。

  1. 建议优先使用方括号语法访问列,比属性访问兼容性更强,不会因为列名包含特殊字符、空格,或者和DataFrame自带属性重名而失效:
# 稳妥的访问方式
print(df['Debt'])
med_debt = math.floor(df['Debt'])

如果修改后列名仍存在多余的前后空白或符号,可以先统一清理列名:

# 清理列名前后的空白、多余逗号等
df.columns = df.columns.str.strip().str.strip(',')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:04