0
点赞
收藏
分享

微信扫一扫

911数据中不同月份不同类型的电话的次数的变化情况

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

一、加载数据并把时间字符串转为时间类型设置为索引

df = pd.read_csv("./911.csv")
df["timeStamp"] = pd.to_datetime(df["timeStamp"])

二、添加列,表示分类

temp_list = df["title"].str.split(": ").tolist()
cate_list = [i[0] for i in temp_list]
df["cate"] = pd.DataFrame(np.array(cate_list).reshape((df.shape[0],1)))
df.set_index("timeStamp",inplace=True)
df.head(3)

latlngdescziptitletwpaddrecate
timeStamp
2015-12-10 17:10:5240.297876-75.581294REINDEER CT & DEAD END; NEW HANOVER; Station ...19525.0EMS: BACK PAINS/INJURYNEW HANOVERREINDEER CT & DEAD END1EMS
2015-12-10 17:29:2140.258061-75.264680BRIAR PATH & WHITEMARSH LN; HATFIELD TOWNSHIP...19446.0EMS: DIABETIC EMERGENCYHATFIELD TOWNSHIPBRIAR PATH & WHITEMARSH LN1EMS
2015-12-10 14:39:2140.121182-75.351975HAWS AVE; NORRISTOWN; 2015-12-10 @ 14:39:21-St...19401.0Fire: GAS-ODOR/LEAKNORRISTOWNHAWS AVE1Fire

三、绘图

plt.figure(figsize=(20, 8), dpi=80)

for group_name, group_data in df.groupby(by="cate"):

    #对不同的分类都进行绘图
    count_by_month = group_data.resample("M").count()["title"]

    # 画图
    _x = count_by_month.index
    _y = count_by_month.values

    _x = [i.strftime("%Y%m%d") for i in _x]

    plt.plot(range(len(_x)), _y, label=group_name)


plt.xticks(range(len(_x)), _x, rotation=45)
plt.legend(loc="best")
plt.show()

在这里插入图片描述

举报

相关推荐

0 条评论