Day 36 : 时间序列,重采样

首页 » 数据科学库 » 正文

2020/11/11

问题1

现在有2015年到2017年25万条911的紧急电话的数据,统计出这些数据不同类型的紧急情况的次数
Day 36 : 时间序列,重采样
Day 36 : 时间序列,重采样

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


df = pd.read_csv("./911.csv")

print(df.head(5))
#获取分类
# print()df["title"].str.split(": ")
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)))

# print(df.head(5))
print(df.groupby(by="cate").count()["title"])

时间序列

在面对时间问题,pandas 也可以有功能很强大的语句。就是date_range(start=None, end=None, periods=None, freq="D")

  • 一般 start 和end 以及 freq 配合能够生成start 和 end 范围内以频率的一组时间索引
    Day 36 : 时间序列,重采样
    Day 36 : 时间序列,重采样

  • start 和 periods 以及freq 配合能够生成以start 开始的频率为freq的periosd个时间索引
    Day 36 : 时间序列,重采样

可以看出来,频率的不同最后结果也不一样,还有更多的频率缩写
Day 36 : 时间序列,重采样
一般用 D, H ,M比较多,如果要几天,几月,几小时的变化 只需要在前面加上数字即可 eg:“freq = “3D”

要点

可以创建一个时间序列的DataFrame

index = pd.data_range("20170101",periods=10)
df = pd.DataFrame(np.random.rand(10),index=index)

把数据中的时间字符串转化为时间序列

df["timeStamp"] = pd.to_datetime(df["timeStamp"],format="")
#pandas 大部分都可以识别时间字符串,所以不用给format赋值,但是如果遇见中文的话,就需要使用这个参数

Pandas重采样

是指将时间序列从一个频率转化为另一个频率进行处理的过程。将高频率转化为低频率数据为降采样(比如说把秒转化为时,分组操作),低频率转化为高频率为升采样(比如说把天转化为时,聚合操作)。
如果一个序列的索引是时间戳,那么就可以直接用resample方法

t.resample("H".mean()) #因为重采样原理其实就是运用分组和聚合,所以也可以使用他们的方法

问题2

问题1的基础上,统计出不同月份不同类型紧急电话的次数的变化情况 。思路:把每行的索引变成时间戳,然后用count方法,时间戳重采样为月,画折线图

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"])

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


#统计出911数据中不同月份电话次数的
count_by_month = df.resample("M").count()["title"]
print(count_by_month)

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

# for i in _x:
#     print(dir(i))
#     break
_x = [i.strftime("%Y%m%d") for i in _x]

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

plt.plot(range(len(_x)),_y)

plt.xticks(range(len(_x)),_x,rotation=45)

plt.show()

未经允许不得转载:作者:1249-刘同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Day 36 : 时间序列,重采样》 发布于2020-11-12

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录