题目
9 对于以下数据集,如果想要提取列 a,哪个无法返回想要的结果? df = pd. DataFrame([[1, 2, 3], [2, 3,4]], columns = [‘a’, ‘b’,‘c’], index = [‘A’, ‘B’])A. df[['a']]B. df['a']C. df.aD. df[0]
9 对于以下数据集,如果想要提取列 a,哪个无法返回想要的结果? df = pd. DataFrame([[1, 2, 3], [2, 3,4]], columns = [‘a’, ‘b’,‘c’], index = [‘A’, ‘B’])
A. df[['a']]
B. df['a']
C. df.a
D. df[0]
题目解答
答案
D. df[0]
解析
本题考查Pandas数据框中列的访问方式,需掌握不同访问方法的适用场景及限制。关键点在于:
- 列标签的类型:数据框的列标签为字符串类型(
'a','b','c'),而非整数。 - 访问方式的差异:
df[['a']]返回DataFrame,df['a']返回Series。df.a是属性访问,依赖列名是否为有效变量名。df[0]试图通过整数索引访问列,但列标签非整数,导致失败。
选项分析
A. df[['a']]
- 用法:传入列名列表
['a'],返回包含列a的DataFrame。 - 结果:合法,正确提取列
a。
B. df['a']
- 用法:直接传入列名字符串
'a',返回列a的Series。 - 结果:合法,正确提取列
a。
C. df.a
- 用法:通过属性访问列
a,要求列名是合法变量名('a'符合)。 - 结果:合法(但不推荐,可能因列名冲突或特殊字符导致问题)。
D. df[0]
- 用法:尝试通过整数索引
0访问列,但列标签为'a','b','c'。 - 结果:无法找到标签为
0的列,返回空或报错,无法提取列a。