911报警电话数据分析

 

使用911数据完成以下任务:

分析任务:(每个任务都要有图和文字分析)

1、分析所有类型的报警数量随月份的变化关系,并得出结论 

2、分析各类类型的报警数量的随月份的变化关系 ,并得出结论

3、分析所有类型的报警数量在周内的变化关系,并得出结论 

4、分析火灾类型的报警数量与季节的变化关系,并得出结论

5、使用经纬度分析美国各地的火灾报警数量与地域的变化关系,并得出结论⭐️⭐️⭐️

  1. 分析所有类型的报警数量随月份的变化关系,并得出结论

 

代码:
import pandas as pd

from matplotlib import pyplot as plt

plt.rcParams["font.family"]= "Microsoft YaHei"

data = pd.read_csv("911.csv")

data["month"] = data["timeStamp"].apply(lambda x:x[5:7])

data_group = data.groupby("month")

x,y = [] ,[]

for m,d in data_group:

    x.append(int(m))

    y.append(d["month"].count())

plt.xlabel("月份")

plt.ylabel("报警次数")

plt.title("报警次数与月份对比图")

plt.xticks(x,x)

plt.plot(x,y)

plt.show()
 
分析:由图可知,美国报警次数前7月份相对较高;在前七个月里,2、4月相对于1、3、6、7较低。在后五个月里,8,9月份为全年报警次数最少的两个月,从10月份开始一直增长到12月份。
  1. 分析各类类型的报警数量的随月份的变化关系 ,并得出结论

 

代码:
import pandas as pd

from matplotlib import pyplot as plt

plt.rcParams["font.family"]= "Microsoft YaHei"

data = pd.read_csv("911.csv")

data["month"] = data["timeStamp"].apply(lambda x:x[5:7])  #

data["cate"] = data["title"].str.split(":").apply(lambda x:x[0]) # 增加一列属性

data_c_group = data.groupby("cate")

for c,d in data_c_group:

    data_m_group = d.groupby("month")

    y = []

    for m,d1 in data_m_group:

        y.append(d1["month"].count())

    x = range(len(y))

    plt.plot(range(12),range(1,13),label=c)

plt.xlabel("月份")

plt.ylabel("报警次数")

plt.title("报警次数与月份对比图")

plt.xticks(x,x)

plt.legend(loc="best")

plt.show()

由图可知:

EMS:1到11月份有着逐渐下降的趋势,到12 月份又显著上升。结果而言,全年EMS报警次数最少的是8到11月份。较多的为1、3、7月份。

Traffic : 全年有着跌宕起伏的变化率。次数一次维持在16000到24000

起伏不定。

Fire : 6、7月份相对偏高。

  1. 分析所有类型的报警数量在周内的变化关系,并得出结论

 

代码:
import pandas as pd

from matplotlib import pyplot as plt

plt.rcParams["font.family"]= "Microsoft YaHei"

data = pd.read_csv("911.csv")

data["time"] = data["timeStamp"].apply(lambda x:x[:-9])

data["timeStamp"] = pd.to_datetime(data["timeStamp"])

data.set_index("timeStamp",inplace=True)

data_week = data.resample("W")

week_data=[0 for _ in range(7)]

for n,d in data_week:

    for i in range(len(d["time"].value_counts())):

        week_data[i]+=d["time"].value_counts().values[i]

y = week_data

x = range(len(y))

plt.plot(x,y)

plt.ylabel("报警数量")

plt.xticks(x,["周一","周二","周三","周四","周五","周六","周天"])

plt.show()
 
由图可知:
周一到周天,一直处于递减的趋势。
 
  1. 分析火灾类型的报警数量与季节的变化关系,并得出结论

 

代码:
import pandas as pd

from matplotlib import pyplot as plt

plt.rcParams["font.family"]= "Microsoft YaHei"

data = pd.read_csv("911.csv")



data["cate"] = data["title"].str.split(":").apply(lambda x:x[0]) # 增加一列属性

data["timeStamp"] = pd.to_datetime(data["timeStamp"])

data.set_index("timeStamp",inplace=True)

data_fire = data[data["cate"]=="Fire"]

#data_fire.set_index("timeStamp",inplace=True)

data_quarter = data_fire.resample("Q")

quarter_data=[0 for _ in range(4)]

for n,d in data_quarter:

   if int(str(n)[5:7]) <= 3: # 春季

       quarter_data[0] += len(d)

   elif int(str(n)[5:7]) <= 6#

       quarter_data[1] += len(d)

   elif int(str(n)[5:7]) <= 9#

       quarter_data[2] += len(d)

   else :

       quarter_data[3] += len(d)

y = quarter_data

x = range(len(y))

plt.plot(x,y)

plt.ylabel("火灾数量")

plt.xticks(x,["春季",'夏季','秋季','冬季'])

plt.show()
 
由图可知: 火灾发生数量从夏春秋东递减。最多是夏季,可见与温度和湿度有关。
  1. 使用经纬度分析美国各地的火灾报警数量与地域的变化关系,并得出结论

 

代码:
import pandas as pd

from matplotlib import pyplot as plt

plt.rcParams["font.family"]= "Microsoft YaHei"

data = pd.read_csv("911.csv")



data["cate"] = data["title"].str.split(":").apply(lambda x:x[0]) # 增加一列属性

data["lat_round"]  = data["lat"].apply(lambda x : round(x,2)) # 把维度归为2位小数

data_fire = data[data["cate"]=="Fire"]

y = data_fire["lat_round"].value_counts().sort_index()

#

x = range(len(y))

plt.plot(x,y)

plt.ylabel("火灾数量")

plt.xlabel("维度")

plt.xticks(x[::10],y.index[::10])

plt.show()
 
由图可知:维度处于40~40.5之间火灾发生较多。可见并不是温度越高,发生火灾越多,其可能与美国人口分布,环境有关。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值