1.1.2 · 建议 30 分钟 · 满分 20
智能农业系统中的业务数据采集和处理流程设计
背景
某农业公司计划引入智能农业系统,通过安装在农田中的各种传感器(如温度传感器、湿度传感器、土壤传感器等)实时监控农田环境,收集数据并进行分析,以优化作物管理和提高产量。为此,公司需要设计并实现一套数据采集和处理流程,确保数据的高效采集、传输和处理,为智能分析提供可靠的数据支持。 传感器数据集 sensor_data.csv 包含字段:SensorID(传感器ID)、Timestamp(时间戳)、SensorType(传感器类型:Temperature 温度、Humidity 湿度、SoilMoisture 土壤水分、SoilPH 土壤酸碱度、Light 光传感器)、Value(传感器读数)、Location(传感器安装位置)。
工作任务
- 传感器数据统计:分别统计每种传感器的数据数量和平均值。
- 按位置统计温度和湿度数据:统计每个位置的温度和湿度传感器数据的平均值。
- 数据清洗和异常值处理:将明显异常的温度(< -10 或 > 50)和湿度(< 0 或 > 100)数据进行标记并统计;对缺失值使用前向填充(前面值缺失则使用后向填充)补齐;将清洗后的数据保存为新文件 cleaned_sensor_data.csv。
素材预览
sensor_data.csv
SensorID,Timestamp,SensorType,Value,Location 1,2024-01-01 00:00:00,Light,79.63217053691564,Field3 2,2024-01-01 01:00:00,Temperature,0.6450259431536542,Field1 ...
代码填空
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据集 2分
data = # 1. 传感器数据统计
# 对传感器类型进行分组,并计算每个组的数据数量和平均值 3分
sensor_stats = ()['Value'].
# 输出结果
print("传感器数据数量和平均值:")
print(sensor_stats)# 2. 按位置统计温度和湿度数据
# 筛选出温度和湿度数据,然后按位置和传感器类型分组,计算每个组的平均值 2分
location_stats = data[data['SensorType']..['Value'].mean().unstack()
# 输出结果
print("每个位置的温度和湿度数据平均值:")
print(location_stats)# 3. 数据清洗和异常值处理
# 标记异常值 3分
data['is_abnormal'] = (
(() & ((data['Value'] < -10) | (data['Value'] > 50))) |
(() & ((data['Value'] < 0) | (data['Value'] > 100))),
True, False
)
# 输出异常值数量 2分
print("异常值数量:", data['is_abnormal'].)
# 填补缺失值
# 使用前向填充和后向填充的方法填补缺失值 4分
data['Value'].(, inplace=True)
data['Value'].(, inplace=True)
# 保存清洗后的数据
# 删除用于标记异常值的列,并将清洗后的数据保存到新的CSV文件中 4分
cleaned_data = (=['is_abnormal'])
('cleaned_sensor_data.csv', )
print("数据清洗完成,已保存为 'cleaned_sensor_data.csv'")