Pandas中的resample()是一个对常规时间序列数据重新采样和频率转换的便捷的方法,可以对原样本重新处理,其语法格式如下:
resample(rule,how=None,axis=0,fill_method=None,closed=None,label=None,convention=“start”,kind=None,loffset=None,limit=None,base=0,on=None,level=None)
部分参数含义如下:
- rule:表示重采样频率的字符串或DateOffset,比如M、5min等。
- how:用于产生聚合值的函数名或函数数组,默认为None。
- fill_method:表示升采样时如何插值,可以取值为fill、bfill或None,默认为None。
- closed:设置降采样哪一端是闭合的,可以取值为right或left。若设为right,则表示划分为左开右闭的区间;若设为left,则表示划分为左闭右开的区间。
- label:表示降采样时设置聚合值的标签。
- convention:重采样日期时,低频转高频采用的约定,可以取值为start或end,默认为start。
- limit:表示前向或后向填充时,允许填充的最大时期数。
接下来通过代码演示:
创建一个时间序列类型的Series对象,代码如下:
1 2 3 4 5 | import numpy as np import pandas as pd date_index=pd.date_range('2020-07-02',periods=30) time_ser=pd.Series(np.arange(30),index=date_index) time_ser |
例子1:
1 2 3 | time_ser.resample('W-MON',how='mean') #how参数不再建议使用 time_ser.resample('W-MON').mean() #时间戳索引为每周一,数据为每周求得的平均值 |
例子2 closed参数的使用:
1 2 3 4 5 | time_ser.resample('W-MON',closed=None).mean() # closed参数表示设置哪一端是闭合的,right为左开右闭,left为左闭右开,默认为None time_ser.resample('W-MON',closed='right').mean() # right 为左开右闭 time_ser.resample('W-MON',closed='left').mean() #left 为左闭右开 |
作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star 呀,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习呀