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

为何pandas中loc[[]]选取单列时出现语法错误?

Pandas中loc[[]]选单列报错的原因

首先得明确loc的调用逻辑:df.loc[行筛选规则, 列筛选规则],如果只写一组括号里的内容,默认是对行进行筛选,而非列。

你遇到的语法错误,大概率是写法不对——比如你可能直接写了df.loc[['max_speed']],这时候Python会把['max_speed']当成行索引的筛选条件,但你的DataFrame行索引是'cobra'、'viper'、'sidewinder',根本找不到'max_speed'这个行标签,自然报错。

官方文档说的[[]]返回DataFrame是对的,但要对应正确的位置:

  • 选单行用双括号:df.loc[['cobra']],这里双括号在行选择器位置,返回DataFrame,没问题;
  • 选单列用双括号的正确写法是:df.loc[:, ['max_speed']],其中:表示选中所有行,['max_speed']是列选择器(双括号包裹列名列表),这样就会返回一个只有max_speed列的DataFrame,完全符合文档说明。

再对比几种写法的区别:

  • 单括号选单列:df['max_speed']或df.loc[:, 'max_speed'],返回的是Series;
  • 双括号选单列:df.loc[:, ['max_speed']],返回的是DataFrame;
  • 错误写法df.loc[['max_speed']]:试图在行索引中找不存在的标签,触发报错。

内容的提问来源于stack exchange,提问作者김예군

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:25:43