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

使用df['列名','列名']形式打印Pandas DataFrame时出现KeyError求助

解决Pandas中df['PDS','SE']引发的KeyError问题

错误原因

Pandas的DataFrame单中括号[]有明确的使用规则:

  • 传入单个字符串时,返回对应列的Series
  • 传入列名列表时,返回包含指定列的DataFrame

你写的df['PDS','SE']本质是把元组('PDS','SE')作为键去查找列,但你的DataFrame列名都是单个字符串('PDS'、'SE'等),不存在名为('PDS','SE')的列,因此直接触发KeyError。

解决方法

有两种可行的修改方式:

方式1:使用双中括号包裹列名列表

把多个列名放在列表里,再用双中括号访问:

#Data Frames code
import numpy as np
import pandas as pd

randArr = np.random.randint(0,100,20).reshape(5,4)
df =pd.DataFrame(randArr,np.arange(101,106,1),['PDS','Algo','SE','INS'])
print(df[['PDS','SE']])  # 双中括号+列名列表

方式2:使用.loc方法(推荐)

.loc是Pandas官方推荐的标签式索引方法,语法更清晰,能明确指定行和列的范围:

#Data Frames code
import numpy as np
import pandas as pd

randArr = np.random.randint(0,100,20).reshape(5,4)
df =pd.DataFrame(randArr,np.arange(101,106,1),['PDS','Algo','SE','INS'])
print(df.loc[:, ['PDS','SE']])  # : 表示取所有行,列表指定要取的列

两种方式都能正确返回包含PDS和SE两列的DataFrame,不会触发KeyError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:24:21