题目
19 以下说法正确的是? import pandas as pd df = pd.DataFrame((‘a’:list(“opq”),‘b’: [3,2,1]),index= [‘e’,‘f’,‘g’])A. df[0:1]返回第0行的数据B. df[0:1]返回第0列的数据C. df[0]会报错D. df[‘e’]会报错
19 以下说法正确的是? import pandas as pd df = pd.DataFrame({‘a’:list(“opq”),‘b’: [3,2,1]},index= [‘e’,‘f’,‘g’])
A. df[0:1]返回第0行的数据
B. df[0:1]返回第0列的数据
C. df[0]会报错
D. df[‘e’]会报错
题目解答
答案
ACD
A. df[0:1]返回第0行的数据
C. df[0]会报错
D. df[‘e’]会报错
A. df[0:1]返回第0行的数据
C. df[0]会报错
D. df[‘e’]会报错
解析
本题考查Pandas DataFrame的索引方式,需掌握以下关键点:
- 方括号
[]默认按列索引:df[key]会优先尝试按列名查找,若不存在则报错。 - 行切片的规则:
df[m:n]默认对行进行切片,返回从第m行到第n-1行的数据。 - 索引与列名的区别:若行索引为字符串,需通过
loc或iloc显式访问行,否则df['str']会被视为列名查询。
选项A:df[0:1]返回第0行的数据
- 行切片规则:
df[0:1]对行进行切片,起始行索引为0,结束行索引为1(不包含),因此返回第0行的数据。 - 正确性:正确。
选项B:df[0:1]返回第0列的数据
- 列切片方式:若要按列切片,需使用
df.iloc[:, 0:1]或df.loc[:, 'a':'b'],而df[0:1]默认对行切片。 - 正确性:错误。
选项C:df[0]会报错
- 列名不存在:
df[0]尝试按列名0查找,但列名为'a'和'b',因此报错。 - 正确性:正确。
选项D:df['e']会报错
- 列名优先原则:
df['e']优先尝试按列名'e'查找,但列名为'a'和'b',因此报错。 - 正确性:正确。