题目
44 数据集 df = pd.DataFrame([[1,2,3],[2,3,4]], columns = ['a','b','c'],index = ['A','B']),以下会报错的是?A. df['a':'c']B. df['a','c']C. df[0]D. df.loc[0,:]
44 数据集 df = pd.DataFrame([[1,2,3],[2,3,4]], columns = ['a','b','c'],index = ['A','B']),以下会报错的是?
A. df['a':'c']
B. df['a','c']
C. df[0]
D. df.loc[0,:]
题目解答
答案
C. df[0]
解析
本题考查Pandas数据框的索引方式,需掌握行标签、列标签的正确引用方法以及不同索引方式的差异。关键点在于:
- 行切片需使用行标签,若标签不存在则返回空而非报错;
- 列选择需用列表包裹多个列名,否则会被误认为多重索引;
- 位置索引与标签索引的区别,
df[0]尝试按列名索引,而df.loc[0,:]尝试按行标签索引。
选项分析
A. df['a':'c']
- 按行标签切片,但原数据行标签为
['A', 'B'],'a'到'c'的标签不存在,返回空DataFrame,不报错。
B. df['a','c']
- 尝试按多重索引列访问,但原数据列为单层
['a', 'b', 'c'],('a','c')的列不存在,报KeyError。
C. df[0]
- 尝试按列名
0访问,但原数据列名为['a', 'b', 'c'],报KeyError。
D. df.loc[0,:]
- 尝试按行标签
0访问,但原数据行标签为['A', 'B'],报KeyError。
结论
选项C因直接尝试访问不存在的列名0,是最直接且必然报错的选项。