pandas的resample使用

pandas的resample使用

重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。

降采样:高频数据到低频数据
升采样:低频数据到高频数据

方法的格式:
DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=‘start’,kind=None, loffset=None, limit=None, base=0)

举例:
1、原始数据如下图所示,有三列【站点,时间,流量】每15分钟记录一次流量数据。比如:6:15:00的值为0.451,表示从6:00:00到6:15:00的时间内产生的流量为0.451.
在这里插入图片描述
2、将15分钟的数据转化成60分钟的数据,即1小时记录一个数据,那么就需要将一小时内的四个时间点的数据相加,比如:7:00:00的流量就是将6:00:00到7:00:00间产生的流量相加,即6:15的+6:30的+6:45的+7:00的,最后结果应该是1.805.
先将数据转化成time series

read_df.drop(columns=[“站点”], inplace=True)
read_df[“时间”] = pd.to_datetime(read_df[“时间”])
read_df.set_index(“时间”, inplace=True)

利用resample实现每小时内数据聚合,当然聚合函数可以选择sum, mean,或者自定义函数,如果不想做加和或者平均操作,只是单纯的想提出某种频率时间点上的记录,选择first

data = read_df.resample(‘1h’, closed=‘right’, label=‘right’).sum()
参数closed的选择很重要,相当于我们数学中的开闭概念,是左开右闭还是左闭右开,我们的例子中是左开右闭,如果closed=‘left’,上面7:00的流量就是1.351.
参数label表示:用哪一边的边缘值标记bucket的值。

data = read_df.resample(‘1h’).first()
这种方式是直接将整点时间上的记录提取出来。
具体参数意义可以参见链接https://www.cnblogs.com/jingsupo/p/pandas-resample.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值