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

在仅含一行数据的Pandas DataFrame中获取指定列的值

解决Pandas DataFrame获取open列时的AttributeError问题

嘿,这个问题我太熟了!你遇到的AttributeError大概率有两个原因,咱们一步步来解决:

首先,排查核心原因

你用df.open报错,但dtypes里明明显示有open列,最可能的情况是:

  1. 列名有隐藏的空格/特殊字符:从你给出的dtypes输出格式(open ----> float64)来看,列名open后面可能跟着空格或者看不见的转义字符,导致你用df.open找不到它;
  2. 命名冲突:open是Python的内置函数名,虽然Pandas通常会优先识别列名,但这种和内置关键字/函数重名的列,用.访问很容易出问题。

解决方案

1. 先确认列名的真实面目

先运行这段代码,看看列名的真实情况:

# 打印所有列名的列表
print(df.columns.tolist())

# 更细致地检查每个列名(能显示看不见的字符)
for col in df.columns:
    print(repr(col))

如果输出里open列名带有空格(比如'open '),那你就需要用带空格的列名来访问。

2. 稳妥的列访问方式

不管列名有没有问题,永远优先用方括号[]的方式访问列,这是最可靠的:

# 正常列名的情况
print(df['open'])

# 如果列名有空格,就用带空格的字符串
# print(df['open '])

为什么df.open不行?

.的访问方式只适用于列名是合法Python标识符的情况:

  • 列名不能有空格、特殊字符(比如-、@)
  • 列名不能是Python关键字(比如class、def)或内置函数名(比如open、print)

所以哪怕你的open列名完全正常,用df['open']也比df.open更安全,能避免各种潜在冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 21:04:06