题目
54 假设df是一个DataFrame类型的数据,下面那个命令不可以取得第三列的数据?A. df[:, 2]B. df.iloc[:, 2]C. df.loc[:, '2']D. df[2, :]
54 假设df是一个DataFrame类型的数据,下面那个命令不可以取得第三列的数据?
A. df[:, 2]
B. df.iloc[:, 2]
C. df.loc[:, '2']
D. df[2, :]
题目解答
答案
A. df[:, 2]
解析
本题考查Pandas DataFrame中数据的索引方法,需判断哪些命令无法正确提取第三列数据。关键点在于理解不同索引方式的语法和适用场景:
df[:, 2]:类似NumPy的切片方式,但Pandas不支持直接使用双括号索引列。df.iloc[:, 2]:基于整数位置的索引,正确提取第三列。df.loc[:, '2']:基于列标签的索引,需列标签为'2'才能生效。df[2, :]:语法错误,Pandas不支持此写法。
核心思路:排除语法错误和不符合索引逻辑的选项。
选项分析
选项A: df[:, 2]
- 语法错误:Pandas的
DataFrame不支持直接使用[:, 2]的切片方式。 - 正确方法:应使用
iloc或loc进行索引。
选项B: df.iloc[:, 2]
- 正确性:
iloc基于整数位置,:表示所有行,2表示第三列(索引从0开始),能正确提取数据。
选项C: df.loc[:, '2']
- 依赖列标签:若第三列的标签为
'2',则正确;否则无法提取。题目未明确列标签,但默认情况下第三列的索引为整数2,而非字符串'2',因此通常不成立。
选项D: df[2, :]
- 语法错误:Pandas的索引方式不支持
[2, :],需通过iloc或loc实现。
结论
- 选项A和D因语法错误无法工作。
- 选项C仅在列标签为
'2'时有效,但题目未说明此条件。 - 最终答案:A和D。