Pandas DataFrame访问首列date_time提示无该属性错误是什么原因
错误原因及解决方案
出现'DataFrame' object has no attribute 'date_time'报错的核心是你尝试用点语法访问的date_time并不在DataFrame的列列表中,常见诱因有两个:
- 列名存在不可见/多余字符
你看到的列名是date_time,但实际列名可能携带首尾空格、导入时产生的特殊编码字符,比如实际为' date_time'、'date_time '等,不符合Python变量命名规则的列名无法通过点语法直接访问。
你可以先执行以下代码查看真实列名:
print(df.columns.tolist())
对应解决方法:
- 批量清理列名首尾多余字符:
df.columns = df.columns.str.strip() - 优先用更稳妥的方括号语法访问列,兼容性远高于点语法:
df['date_time']
- date_time被设为行索引而非普通列
如果读取数据时指定了index_col=0参数,第一列的date_time会被转换为DataFrame的行索引,不会出现在列列表中,自然无法通过列名访问。
对应解决方法:
- 直接用行索引绘图:
ax[0].plot(df.index, df.P1_VWC) ax[1].plot(df.index, df.P2_VWC)
- 把索引转回普通列后再访问:
df = df.reset_index()
提示:日常开发中优先使用
df['列名']的写法访问DataFrame列,可避免列名含空格、特殊字符、和pandas内置方法重名导致的各类报错。
内容的提问来源于stack exchange,提问作者Bojan Milinic
相关产品推荐
相关产品推荐

