1.1.5 智能交通系统的数据采集、处理和审核流程设计某智能交通系统希望通过车辆的行驶数据,利用人工智能技术进行交通流量预测和拥堵预警。你作为人工智能训练师,需要设计一套全面的业务数据采集、处理和审核流程,确保数据在进入交通流量分析系统之前经过严格的采集、清洗、审核和预处理。这里提供一个车辆行驶数据集(vehicle_traffic_data.csv),包含以下字段:
VehicleID: 车辆IDDriverName: 驾驶员姓名Age: 年龄Gender: 性别(Male/Female)Speed: 车速(km/h)TravelDistance: 行驶距离(km)TravelTime: 行驶时间(min)TrafficEvent: 交通事件(Normal, Accident, Traffic Jam, Breakdown)
你作为人工智能训练师,根据提供的vehicle_traffic_data.csv数据集和Python代码框架(1.1.5.ipynb),完成以下数据的采集、处理和审核任务,确保数据的准确性和可靠性。请按照以下要求完成任务,确保结果准确并保存相应的截图。
(1)数据采集:
通过运行Python代码(1.1.5.ipynb),从本地文件vehicle_traffic_data.csv中读取数据,并将数据加载到DataFrame中。显示前5行数据截图以JPG的格式保存,命名为“1.1.5-1”。
(2)数据清洗与预处理:
通过运行Python代码(1.1.5.ipynb)对数据进行清洗和预处理,具体要求如下:
处理缺失值:对缺失值进行删除。数据类型转换:确保每个字段的数据类型正确。处理异常值:删除不合理的年龄、车速、行驶距离和行驶时间。
清洗后的数据保存为新文件cleaned_vehicle_traffic_data.csv。
(3)数据合理性审核: 通过运行Python代码审核以下字段的合理性:
年龄:应在18到70岁之间。车速:应在0到200 km/h之间。行驶距离:应在1到1000 km之间。行驶时间:应在1到1440分钟(24小时)之间。
对不合理的数据进行标记,并将审核结果截图以JPG的格式保存,命名为“1.1.5-2”。
(4)数据统计:
通过运行Python代码(1.1.5.ipynb),完成以下数据统计任务:
统计每种交通事件的发生次数。统计不同性别的平均车速、行驶距离和行驶时间。统计不同年龄段的驾驶员数(18-25岁、26-35岁、36-45岁、46-55岁、56-65岁、65岁以上)。
将统计结果分别截图以JPG的格式保存,分别命名为“1.1.5-3”、“1.1.5-4”、“1.1.5-5”。
所有结果文件储存在桌面新建的考生文件夹中,文件夹命名为“准考证号+身份证号后六位”。
代码填空
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 1. 数据采集
# 从本地文件中读取数据 2分
data = _____________._____________('vehicle_traffic_data.csv')
print("数据采集完成,已加载到DataFrame中")
# 打印数据的前5条记录
print(data.head())
# 2. 数据清洗与预处理
# 处理缺失值 2分
data = _____________._____________()
# 数据类型转换
data['Age'] = data['Age']._____________(int) #Age数据类型转换 1分
data['Speed'] = data['Speed']._____________(float) #Speed数据类型转换 1分
data['TravelDistance'] = data['TravelDistance']._____________(float) #TravelDistance数据类型转换 1分
data['TravelTime'] = data['TravelTime']._____________(float) #TravelTime数据类型转换 1分
# 处理异常值 2分
data = data[(data['Age']._____________(18, 70)) &
(data['Speed'].between(0, 200)) &
(data['TravelDistance'].between(1, 1000)) &
(data['TravelTime']._____________(1, 1440))]
# 保存清洗后的数据 1分
data._____________('cleaned_vehicle_traffic_data.csv', index=False)
print("数据清洗完成,已保存为 'cleaned_vehicle_traffic_data.csv'")
# 3. 数据合理性审核
# 审核字段合理性 1分
unreasonable_data = _____________[~((data['Age'].between(18, 70)) &
(data['Speed'].between(0, 200)) &
(data['TravelDistance'].between(1, 1000)) &
(data['TravelTime'].between(1, 1440)))]
print("不合理的数据:\n", unreasonable_data)
# 4. 数据统计
# 统计每种交通事件的发生次数 2分
traffic_event_counts = _____________['TrafficEvent']._____________()
print("每种交通事件的发生次数:\n", traffic_event_counts)
# 统计不同性别的平均车速、行驶距离和行驶时间 2分
gender_stats = data._____________('Gender')._____________({'Speed': 'mean', 'TravelDistance': 'mean', 'TravelTime': 'mean'})
print("不同性别的平均车速、行驶距离和行驶时间:\n", gender_stats)
# 统计不同年龄段的驾驶员数 2分
age_bins = [18, 25, 35, 45, 55, 65, 70]
age_labels = ['18-25', '26-35', '36-45', '46-55', '56-65', '66-70']
data['AgeGroup'] = pd._____________(data['Age'], bins=age_bins, labels=age_labels, right=False)
age_group_counts = data['AgeGroup']._____________()
print("不同年龄段的驾驶员数:\n", age_group_counts)