第 13 题
答案与解析
第(1)小题
C
选项分析
第(2)小题
C
D
选项分析
第(3)小题
A
B
D
选项分析
第(4)小题
设置两个土壤湿度阈值,启动阈值低于停止阈值。湿度低于启动阈值时启动喷灌,高于停止阈值时停止喷灌;湿度处于两个阈值之间时保持设备原状态。
只用一个阈值控制启停时,湿度在阈值附近上下波动,就可能反复触发相反的动作。将启动与停止条件分开后,喷灌启动后要等湿度升至较高阈值才停止,停止后要等湿度降至较低阈值才重新启动;两阈值之间的小幅波动不会改变设备状态,从而减少频繁启停。
第(5)小题
A
E
C
数据处理过程
df = pd.read_excel('data.xlsx')读取 Excel 文件,得到 DataFrame df。原表每行表示某个监测点在某一时刻采集的一条土壤湿度记录,包含“监测点”“日期”“时间”“土壤湿度”等列。
df['小时'] = df['时间'].str[0:2]从“时间”字符串中取前两个字符,新增“小时”列。例如,00:30 和 00:40 都对应小时字符串“00”,便于把同一小时内的多次采集归在一起。题目只处理一天的数据,因此不需要再按日期区分。
ls=['A','B','C','D','E','F']
for i in ls:
df1=①
df2=②
df3=③
print(f"监测点 {i} 最低湿度的三小时:")
print(df3)循环让 i 依次取各监测点编号,每轮通过 df1、df2、df3 处理数据,最后输出当前监测点的结果。因此,每轮得到的 df3 需要对应当前监测点,并同时包含所求的三个小时及各小时的平均土壤湿度。
填空分析
①
每轮先从原始 df 中取出当前监测点 i 的全部记录。df["监测点"]==i 得到逐行判断结果,再用它筛选 df,填 df[df["监测点"]==i],选 A。首次循环前 df1 尚未赋值,不能用 df1 作为本次筛选的数据来源。
②
df1 已只包含当前监测点的记录。题目要求计算“每小时的平均土壤湿度”,因此应按“小时”分组,对“土壤湿度”列求平均,填 df1.groupby("小时",as_index=False)['土壤湿度'].mean(),选 E。所得 df2 是 DataFrame,每行对应一个小时;as_index=False 使小时保留为普通列,使用默认整数 index,“土壤湿度”列则保存该小时多次采集值的平均值。
以监测点 A 为例,依据图 b 中可见的数据,df2 中相关行的结构如下(仅列出其中三行,数值按图中显示精度):
| index | 小时 | 土壤湿度 |
|---|---|---|
| 17 | 17 | 23.766667 |
| 18 | 18 | 23.850000 |
| 20 | 20 | 23.733333 |
“小时”列中的值是提取出的两位字符串;左侧 index 是行索引,与“小时”列分开保存。
③
要找平均土壤湿度最低的三个小时,应对已按小时求平均的 df2 操作:按“土壤湿度”升序排列,再用 head(3) 取前三行,填 df2.sort_values('土壤湿度',ascending=True).head(3),选 C。这样保留了对应的“小时”列,输出的每行都能同时给出小时和平均湿度。图 b 中监测点 A 的输出顺序为20、17、18时,对应平均值由小到大;排序保留原行索引,因此左侧仍显示20、17、18。
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_qiangjilianmeng_q013
