a 的索引是什么?from pandas import Series
a = Series([6.3, 43.1, 24.4])
print(a)
A. ['6.3', '43.1', '24.4'] B. 默认整数索引 0、1、2 C. 因未指定 index 而报错 D. 自动生成字母索引 A、B、C 答案:B 解析: 用列表作为参数且不指定索引时,自动生成整数索引。a[1] 的值为 43.1。
drop() 方法删除元素时,默认会直接修改原始序列。 答案:× 解析: drop() 默认返回一个不含被删元素的新序列,不修改原始对象。要在原对象上删除,必须指定 inplace=True。index 指定标签 C. 创建后不能再修改标签 D. 创建后可通过对象的 index 属性修改标签 答案:ABD 解析: 课程给出两种创建方法:列表自动整数索引,numpy 数组加 index 指定标签。创建后还可通过 index 属性改标签,如 gu.index=['幸福银行', '平安科技', '南方通信']。C 错误。from pandas import Series
gu = Series([6.3, 43.1, 24.4], index=['幸福银行', '平安科技', '南方通信'])
print(gu['平安科技':'南方通信'])
A. 仅「平安科技」(标签切片不含结束标签) B. 「平安科技」和「南方通信」(标签切片包含结束标签) C. 「幸福银行」「平安科技」「南方通信」全部包含 D. 报错,标签不能用于切片 答案:B 解析: 标签切片语法为 对象['起始标签':'结束标签'],切连续元素且包含结束标签。对比:索引切片 gu[0:2] 与 Python 相同,不含结束位置,只含「幸福银行」和「平安科技」。
对象['标签1'] = 值,下列说法正确的是: A. 只能修改已有标签的值,标签不存在则报错 B. 只能新增元素,不能修改已有值 C. 标签已存在则修改其值,不存在则新增该标签及对应值 D. 必须先调用 append() 才能增加元素 答案:C 解析: 增加和修改的方法与 Python 字典相同。例如 gu['南方通信'] = 25.3 修改已有价格,gu['光明证券'] = 17.78 增加新元素。drop() 方法,下列说法正确的有: A. 删除单个元素时,直接将标签传给 drop B. 删除多个元素时,将多个标签封装到列表中传入 C. 传入的标签列表顺序必须与序列中标签顺序完全一致 D. 若要在原始序列中删除,需要指定 inplace=True 答案:ABD 解析: 删除多个时列表中标签顺序可以与序列对象中的顺序不同。C 错误。drop() 默认不改原对象。南方通信 对应的结果是多少?from pandas import Series
open = Series([23.5, 6.1, 42.1], index=['南方通信', '幸福银行', '平安科技'])
close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行'])
print(close - open)
A. 44.3 − 23.5 = 20.8(按位置把两个序列的第一个元素相减) B. 22.6 − 23.5 = −0.9(按索引「南方通信」对齐后再减) C. 6.5 − 23.5 = −17.0 D. 因两个序列的索引顺序不同而报错 答案:B 解析: 序列之间运算时 Pandas 按索引对齐,不按位置。close 中南方通信为 22.6,open 中南方通信为 23.5,差为 −0.9。同理,平安科技为 2.2,幸福银行为 0.4。
chengji(语文 70、数学 85、英语 90),然后取出数学成绩。 答案:import numpy as np
from pandas import Series
chengji = Series(np.array((70, 85, 90)), index=['语文', '数学', '英语'])
print(chengji['数学']) # 输出 85
解析: 评分要点:① 使用 Series 与 np.array;② index 指定三门课程标签;③ 用标签 '数学' 访问,结果为 85。未指定标签而用位置访问可酌情给部分分。
s[0:2] 与 s['数学':'英语'] 各包含哪些元素?(2)s.drop('语文') 之后原对象 s 是否还含「语文」?(3)若另有序列 t 的索引顺序与 s 不同,s + t 会按什么规则计算?from pandas import Series
s = Series([70, 85, 90], index=['语文', '数学', '英语'])
print(s[0:2])
print(s['数学':'英语'])
s2 = s.drop('语文')
print(s)
print(s2)
答案: (1)s[0:2] 含语文 70、数学 85(索引切片不含结束位置);s['数学':'英语'] 含数学 85、英语 90(标签切片包含结束标签)。 (2)仍含「语文」。drop() 默认返回新序列 s2,不修改 s;要改原对象需 inplace=True。 (3)按索引(标签)自动对齐后再相加,即使两个序列的索引顺序不同也能正确对应。 解析: 评分要点:① 能区分索引切片与标签切片的闭开区间差异;② 说明 drop 默认不改原对象;③ 点明序列运算按索引对齐而非按位置。三点答全给满分。