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

读取CSV绘图时遇DataFrame无对应属性AttributeError如何解决

报错原因

你触发AttributeError的核心问题是列名访问方式使用错误:
你代码中写的data.C(Lift)、data.C(Drag)会被Python解析为「调用data对象的C方法并传入Lift/Drag作为参数」,但你的DataFrame没有名为C的属性/方法,自然触发报错。
另外pandas仅支持对*符合Python标识符命名规则(仅含字母、数字、下划线,不能以数字开头、不能含特殊符号)*的列名使用df.列名的访问方式,C(Lift)含括号属于非法标识符,只能用方括号形式访问。

修复方法

将3处变量赋值的代码修改为正确的列访问写法即可,同时你当前图例声明了3个标签但仅绘制了2条曲线,多余的"AoA"标签建议删除避免显示异常:

import pandas as pd
from matplotlib import pyplot as plt

#Reading Airfoil data from file
data = pd.read_csv('data.csv')
dataset = data
data['L/D ratio'] = data['C(Lift)']/data['C(Drag)']
# print(data.columns) 可选操作:运行这行可以确认所有列名和你写的完全一致,排除拼写、隐藏空格问题

x = data['AoA'] # 写法统一,避免AoA如果有隐藏空格也触发同类报错
y = data['C(Lift)'] # 修复列访问写法
z = data['C(Drag)'] # 修复列访问写法
plt.plot(x, y)
plt.plot(x, z)
plt.title("Angle of attack (X) Drag and Lift coeficcient relation")
plt.xlabel('Angle of attack')
plt.legend(["C(lift)", "C(drag)"]) # 删除多余的AoA标签
plt.ylabel('C(lift) and C(drag)')
plt.show() # 补充这行可以直接弹出显示绘制的图像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:24:06