复制
收藏
提问
简洁

某市公安局提供了一个警情数据集(警情.csv),包含了近年来的报警时间、地点、类型、处理状态等信息。你作为数据分析师,需要编写一个Python程序对这些数据进行分析,帮助警方更好地了解警情特点,优化警力部署。 编程要求 根据提示,在右侧编辑器 Begin-End 部分补充代码,完成题目。具体要完成以下任务: 读取数据集,统计样本总数,对缺失值进行处理; 统计不同类型警情的数量和比例,找出最高频的警情类型; 分析警情高发的月份、星期和时段(统计出各个月份、星期和时段的警情次数并降序以及最值); 对处理状态进行汇总,计算结案率。 通过完成以上任务,需要输出各项分析结果的关键变量,便于警方人员查询和决策参考。 数据集样例(警情.csv) 报警时间 案件类型 报警地点 处理状态 2022/1/1 8:15 盗窃 XX市AA区BB路 已结案 2022/1/2 14:20 诈骗 XX市CC区DD路 已结案 注意:本题各项分析结果存储在一个变量字典中,变量名具有清晰含义,上述的任务中涉及的变量需要根据下方提示命名 variables = { 'total_cases': total_cases, # 样本总数 'type_counts': type_counts, # 每种案件类型的数量 'type_proportion': type_proportion, # 每种案件类型占总案件的比例 'top_type': top_type, # 最高频案件类型 'month_counts': month_counts, # 每个月份的警情数量 'weekday_counts': weekday_counts, # 每个星期的警情数量 'hour_counts': hour_counts, # 每个小时的警情数量 'top_month': top_month, # 警情最多的月份 'top_weekday': top_weekday, # 警情最多的星期 'top_hour': top_hour, # 警情最多的小时 'status_counts': status_counts, # 每种处理状态的数量 'solved_rate': solved_rate, # 结案率 } 评分标准 1. 数据读取和预处理(2分): 成功读取数据集,统计样本总数(2分) 预期输出样式:一个整数(例如:1) 2. 警情类型分析(6分): 正确统计不同类型警情的数量(2分) 预期输出样式: 盗窃 # 诈骗 # 故意伤害 # 交通肇事 # Name: 案件类型, dtype: int64 正确统计不同类型警情所占的比例(2分) 预期输出样式: 盗窃 # 诈骗 # 故意伤害 # 交通肇事 # Name: 案件类型, dtype: float64 成功找出最高频的警情类型(2分) 预期输出样式:某一个警情类型名称(以实际结果为准) 3. 警情时间分析(4分): 正确统计警情高发的月份(2分) 预期输出样式:第一列为月份、第二列为每个月份的警情次数 12 # 11 # 10 # 3 # 2 # Name: 月份, dtype: int64 成功找出警情最高发的具体小时(2分) 预期输出样式:输出的为一个数,为分析出的具体小时(例如:1) 4. 处理状态分析(3分): 正确汇总不同处理状态的数量(1.5分) 预期输出样式:处理状态分为已结案和未结案两种 已结案 # 未结案 # Name: 处理状态, dtype: int64 成功计算结案率(1.5分) 预期输出样式:输出的为一个数,为计算的结案率(结案率=已结案数/(未结案数+已结案数))

4月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些
import pandas as pd

# 数据读取和预处理
data = pd.read_csv('警情.csv')
total_cases = len(data)
data.dropna(inplace=True)  # 删除缺失值

# 警情类型分析
type_counts = data['案件类型'].value_counts()
type_proportion = type_counts / total_cases
top_type = type_counts.idxmax()

# 警情时间分析
data['报警时间'] = pd.to_datetime(data['报警时间'])
month_counts = data['报警时间'].dt.month.value_counts()
weekday_counts = data['报警时间'].dt.dayofweek.value_counts()
hour_counts = data['报警时间'].dt.hour.value_counts()
top_month = month_counts.idxmax()
top_weekday = weekday_counts.idxmax()
top_hour = hour_counts.idxmax()

# 处理状态分析
status_counts = data['处理状态'].value_counts()
solved = status_counts['已结案']
unsolved = total_cases - solved
solved_rate = solved / (unsolved + solved)

# 将分析结果存储在变量字典中
variables = {
    'total_cases': total_cases,
    'type_counts': type_counts,
    'type_proportion': type_proportion,
    'top_type': top_type,
    'month_counts': month_counts,
    'weekday_counts': weekday_counts,
    'hour_counts': hour_counts,
    'top_month': top_month,
    'top_weekday': top_weekday,
    'top_hour': top_hour,
    'status_counts': status_counts,
    'solved_rate': solved_rate
}

# 输出结果
print(variables)

这段代码首先读取了名为 '警情.csv' 的数据集,并进行了基本的数据清洗,包括删除缺失值。然后,它统计了不同案件类型的数量和比例,并找出了最高频的案件类型。接下来,代码分析了警情高发的月份、星期和时段,并计算了结案率。最后,所有分析结果都被存储在一个名为 variables 的字典中,以便于查询和决策参考。

你觉得结果怎么样?

以上内容由AI搜集生成,仅供参考

在线客服