智能工程学院大一第三次作业
(描述你如何将6项分析任务分步拆解给 AI?先让 AI 做数据读取,再做可视化,还是一次性让 AI 完成全部代码?) 我每一项任务先大致想了编程思路,在将要求和思路交给AI,AI优化了思路并生成代码,我再一步步debug.
(展示一次你修改 Prompt 让 AI 代码从'不符合要求'变成'符合规范'的迭代过程) 初代 Prompt:... AI 生成的问题:...(例如:用了 seaborn 替代 matplotlib 画柱状图 / 函数签名不符合要求 / PHF 计算方法错误) 优化后的 Prompt:... AI生成的函数名是calculate_route_stats,参数名是df, route_column, stops_column,与题目要求的analyze_route_stops(df, route_col='线路号', stops_col='ride_stops')完全不符。 我按照函数名一步步审查并修改。
(记录一次解决报错的过程,例如:时区解析报错 / 热力图中文乱码 / ride_stops=0 导致的结果偏差) 报错现象:... 解决过程:... KeyError: 'hour' 在任务4计算高峰小时系数时,代码试图在peak_hour_records中使用'hour'列。 首先检查错误位置,发现是在peak_hour_records['minute'] = peak_hour_records['交易时间'].dt.minute 发现原因是之前使用了.copy()创建副本,但后续操作中又引用了原变量
onboard_records = df[df['刷卡类型'] == 0]
hourly_volume = onboard_records.groupby('hour').size()
peak_hour = hourly_volume.idxmax() # 获取最大值的索引,即高峰小时 peak_volume = hourly_volume.max() # 获取最大值,即高峰小时刷卡量
peak_hour_records = onboard_records[onboard_records['hour'] == peak_hour].copy()
peak_hour_records['minute'] = peak_hour_records['交易时间'].dt.minute
peak_hour_records['minute_group'] = (peak_hour_records['minute'] // 5) * 5
five_min_volume = peak_hour_records.groupby('minute_group').size()
max_5min_volume = five_min_volume.max() # 最大5分钟刷卡量 max_5min_period = five_min_volume.idxmax() # 对应窗口起始分钟
PHF5 = peak_volume / (12 * max_5min_volume)
peak_hour_records['minute_group_15'] = (peak_hour_records['minute'] // 15) * 15
fifteen_min_volume = peak_hour_records.groupby('minute_group_15').size()
max_15min_volume = fifteen_min_volume.max() # 最大15分钟刷卡量 max_15min_period = fifteen_min_volume.idxmax() # 对应窗口起始分钟