现在我们有2015到2017年25万条911的紧急电话的数据,请,如果我们还想统计出不同月份不同类型紧急电话的次数的变化情况,应该怎么做呢?
数据来源:
https://www.kaggle.com/mchirico/montcoalert/data
问题2:统计出911数据中不同月份电话次数的变化情况
不管在什么行业,时间序列都是一种非常重要的数据形式,很多统计数据以及数据的规律也都和时间序列有着非常重要的联系,而且在pandas中处理时间序列是非常简单
生成一段时间范围
pd.date_range(start=None, end=None, periods=None, freq='D')
start表示开始的时间, end表示结束的时间,,periods时间段, freq频率,比如按天,月,年划分
start和end以及freq配合能够生成start和end范围内以频率freq的一组时间索引
start和periods以及freq配合能够生成从start开始的频率为freq的periods个时间索引
![002a2e55bc683424016b6ef2b86b91af.png](https://i-blog.csdnimg.cn/blog_migrate/b2714878f0f942f005d662fd41e7ad5e.jpeg)
freq的值
![1dc6581e48cf6b76d48ebdc2198f538e.png](https://i-blog.csdnimg.cn/blog_migrate/8ec90ec00bbd4b98ec0f82251ad35cb6.jpeg)
在DataFrame中使用时间序列
index=pd.date_range("20170101",periods=10)
df = pd.DataFrame(np.random.rand(10),index=index)
回到最开始的911数据的案例中,我们可以使用pandas提供的方法把时间字符串转化为时间序列
df["timeStamp"] = pd.to_datetime(df["timeStamp"],format="")
format参数大部分情况下可以不用写,但是对于pandas无法格式化的时间字符串,我们可以使用该参数,比如包含中文 参考:https://www.runoob.com/python3/python3-date-time.html
重采样
重采样:指的是将时间序列从一个频率转化为另一个频率进行处理的过程,将高频率数据转化为低频率数据为降采样,低频率转化为高频率为升采样
pandas提供了一个resample的方法来帮助我们实现频率转化
![8cd82bb170293dd63fa96a5b9c6c4109.png](https://i-blog.csdnimg.cn/blog_migrate/9b6698f1a1499038e5894d38947f6527.jpeg)
import pandas as pdimport numpy as npfrom matplotlib import pyplot as py#让head方法把所有列全部显示出来pd.set_option('display.max_columns', None)filepath="./911.csv"df=pd.read_csv(filepath)#时间字符串转化为时间序列df["timeStamp"] = pd.to_datetime(df["timeStamp"])#把时间戳当作索引df.set_index("timeStamp",inplace=True)# print(df)#按照月份分组聚合,再随便取一列结果count_month=df.resample("M").count()['title']print(count_month)#设置x,y轴的内容x=count_month.indexy=count_month.values#设计图片大小py.figure(figsize=(20,8),dpi=80)#绘图py.plot(range(len(x)),y)#刻度py.xticks(range(len(x)),x,rotation=45)#展示图形py.show()
结果显示的小时,分钟,秒时间,这不是我们想要的,那就要对x修改了
![9e838d4e39b85a9d4dfd09a4619466b7.png](https://i-blog.csdnimg.cn/blog_migrate/687bc4aa97ec1fe9cdf3df5660091d33.jpeg)
x=count_month.index代码后再加一行代码:x=[i.strftime('%Y%m%d') for i in x],起到格式化的作用
![6dac31cacc7276c02ed13ed55fbeeb10.png](https://i-blog.csdnimg.cn/blog_migrate/35f45a7f37336f89c84725064af58357.jpeg)