第 13 题
答案与解析
第(1)小题
B
智能终端向服务器上传自身编号和采集的数据,服务器又通过智能终端控制执行器,控制指令需要从服务器传回智能终端。两个方向均有信息传输,因此属于双向通信。
第(2)小题
C
D
选项分析
第(3)小题
B
D
选项分析
第(4)小题
该监测点的温度传感器故障。
该监测点的温度传感器与智能终端之间的连接故障。
温度数据先由传感器采集,再经与智能终端的连接送入终端,最后上传到服务器。传感器故障可能使测量值本身失真;传感器与智能终端之间接触不良、接线异常等连接故障,可能使终端读取到异常值。两者都可能导致服务器收到的温度与实际温度不符。
第(5)小题
B
E
C
数据处理过程
df = pd.read_excel("data.xlsx")读取当年5月的监测数据,得到DataFrame。每行表示某终端在某日期、时刻的一次采集,列为“日期”“时间”“终端编号”“温度”“二氧化碳”,此时“二氧化碳”列保存浓度值。
id = input("输入待查监测点的终端编号:")input返回字符串,因此输入编号1时,id的值为字符串"1";图a中的终端编号为整数,后续比较时需要统一类型。
yz = 1000 #二氧化碳阈值设置异常判断阈值为1000。
df1 = df1[df1["二氧化碳"] > yz] #筛选对上一步的数据保留浓度严格大于1000的记录;浓度等于1000的记录不计入异常次数。此时每行仍代表一次采集。
df1 = df1[df1["二氧化碳"] >= df1.values[3][1]]values[3][1]按位置取得第四行、第二列的值,不是取index标签为3的行。该句用这一数值作为筛选下限,保留“二氧化碳”列不小于它的记录;因此空②、③的结果必须满足按日比较异常次数的要求。
填空分析
①
统计范围是某一个监测点,应逐行比较“终端编号”与输入编号,得到布尔序列,再用它筛选原表。将输入字符串转换为整数,填df[df["终端编号"] == int(id)],选B。
②
经过异常筛选后,每行就是一次超阈值记录。要求按天统计,所以按“日期”分组,再对“二氧化碳”列计数,填df1.groupby("日期", as_index=False).二氧化碳.count(),选E。
as_index=False使日期保留为普通列,汇总结果是仅含“日期”“二氧化碳”两列的DataFrame;每行对应一个日期,“二氧化碳”列保存当天的异常记录数。
按日汇总后的结构如下,d₀、d₁表示实际有异常记录的日期,N₀、N₁表示对应次数,均为结构示意符号。
| index | 日期 | 二氧化碳 |
|---|---|---|
| 0 | d₀ | N₀ |
| 1 | d₁ | N₁ |
| … | … | … |
③
要让第四行对应异常次数排名第四的日期,必须按保存次数的“二氧化碳”列降序排列,填df1.sort_values("二氧化碳", ascending=False),选C。排序只改变行的排列,保留原index标签。
图b中第四行次数为3,最后一句因此保留次数≥3的所有日期,得到5行而非仅4行。该写法要求按日汇总后至少有4行,本题示例满足此条件。
图b给出的最终结果如下;左列为保留的index标签,第二个数据列保存异常记录数。
| index | 日期 | 二氧化碳 |
|---|---|---|
| 11 | 05月15日 | 5 |
| 15 | 05月19日 | 4 |
| 9 | 05月13日 | 4 |
| 0 | 05月01日 | 3 |
| 3 | 05月05日 | 3 |
问题反馈
解析有疑问或显示异常?请先复制题目信息,再打开反馈表单填写。
题目编号:2026_05_G3_zhejiangqixiao_q013
