题目
25 单选题(本题分值:1分) 对于以下数据集,如果想要提取行A,哪个无法返回想要的结果? df = pd.DataFrame([[1, 2, 3], [2, 3, 4]], columns=['a', 'b', 'c'], index=['A', 'B'])A. df.loc['A.':]B. df[0:1]C. df. loc[0:1]D. df[0]
25 单选题(本题分值:1分) 对于以下数据集,如果想要提取行A,哪个无法返回想要的结果? df = pd.DataFrame([[1, 2, 3], [2, 3, 4]], columns=['a', 'b', 'c'], index=['A', 'B'])
A. df.loc['A.':]
B. df[0:1]
C. df. loc[0:1]
D. df[0]
题目解答
答案
C. df. loc[0:1]
解析
本题考查Pandas DataFrame的索引方式,需掌握df.loc和df.iloc的区别,以及标签索引与位置索引的应用。关键在于理解不同索引方式的逻辑:
df.loc:基于行标签和列名进行索引,需使用实际存在的标签。df.iloc(或df[]的默认行为):基于行位置(从0开始)进行索引。df[0]:默认尝试按列名索引,而非行位置。
选项分析
选项A:df.loc['A':]
- 逻辑:从行标签
'A'开始提取所有后续行。 - 结果:包含行
A和B,能提取行A。
选项B:df[0:1]
- 逻辑:默认按位置索引,提取第0行到第1行(左闭右开区间)。
- 结果:仅包含行
A,能提取行A。
选项C:df.loc[0:1]
- 逻辑:尝试按标签
0到1提取行,但实际行标签为'A'和'B'。 - 结果:无匹配标签,返回空DataFrame,无法提取行A。
选项D:df[0]
- 逻辑:默认按列名
0提取列,但列名实际为'a'、'b'、'c'。 - 结果:抛出
KeyError,无法提取行A。
结论
选项C和D均无法提取行A,但题目要求选择无法返回结果而非报错的选项,因此选项C更符合题意。