pandas reshape,,Pandas中resample方法详解

pandas reshape,,Pandas中resample方法详解

本文主要介绍了熊猫中的重采样方法的详细说明,通过示例代码非常详细,对大家的学习或者工作有一定的参考价值。有需要的朋友下面跟边肖学习。

在Pandas中,重采样是对原始样本进行再处理的一种方法,也是对常规时间序列数据进行重采样和频率转换的一种便捷方法。

该方法的格式为:

DataFrame.resample(rule,how=None,axis=0,fill_method=None,closed=None,label=None,convention='start ',kind=None,loffset=None,limit=None,base=0)

参数的详细解释是:

参数

解释

频率

表示重采样频率,如' m ',' 5min ',秒(15)

怎么='卑鄙'

用于生成聚合值的函数名或数组函数,如“mean”、“ohlc”、“np.max”等。默认为“平均值”,其他常用值有:“第一个”、“最后一个”、“中值”、“最大值”、“最小值”

轴=0

是默认的垂直轴,水平轴设置为axis=1。

fill_method=无

采样时如何插值,比如' ' ffill ',' ' bfill '等。

关闭='右'

下采样时,每个时间段的哪个部分是关闭的,“右”或“左”,默认为“右”

label='右'

下采样时,如何设置聚合值的标签,比如9: 30-9: 35是标记为9: 30还是9: 35,默认为9: 35?

loffset=无

容器标签的时间校正值,如'-1s '或秒(-1),用于将聚合标签提前1秒。

限制=无

向前或向后填充时允许填充的最大周期数。

种类=无

聚合到period ('period ')或timestamp ('timestamp '),默认情况下聚合时间序列的索引类型。

约定=无

重采样期间将低频转换为高频所采用的约定(开始或结束)。默认' '结束'

首先,创建一个采样频率为一分钟的序列。

index=pd.date_range('1/1/2000 ',periods=9,freq='T ')

系列=pd。系列(范围(9),索引=索引)

系列

2000-01-01 00:00:00 0

2000-01-01 00:01:00 1

2000-01-01 00:02:00 2

2000-01-01 00:03:00 3

2000-01-01 00:04:00 4

2000-01-01 00:05:00 5

2000-01-01 00:06:00 6

2000-01-01 00:07:00 7

2000-01-01 00:08:00 8

频率:T,数据类型:int64

将采样频率降低到三分钟。

series.resample('3T ')。总和()

2000-01-01 00:00:00 3

2000-01-01 00:03:00 12

2000-01-01 00:06:00 21

频率:3T,数据类型:int64

将采样频率降低到三分钟,但是对每个标签使用右而不是左。请注意,bucket中的值用作标签。

series.resample('3T ',label='right ')。总和()

2000-01-01 00:03:00 3

2000-01-01 00:06:00 12

2000-01-01 00:09:00 21

频率:3T,数据类型:int64

将采样频率降低到三分钟,但关闭正确的间隔。

series.resample('3T ',label='right ',closed='right ')。总和()

2000-01-01 00:00:00 0

2000-01-01 00:03:00 6

2000-01-01 00:06:00 15

2000-01-01 00:09:00 15

频率:3T,数据类型:int64

将采样频率增加到30秒。

series.resample('30S ')。asfreq()[0:5]#选择前5行

2000-01-01 00:00:00 0

2000-01-01 00:01:00 1

2000-01-01 00:02:00 2

频率:30秒,数据类型:浮点64

将采样频率提高到30S,用pad法填入nan值。

series.resample('30S ')。pad()[0:5]

2000-01-01 00:00:00 0

2000-01-01 00:00:30 0

2000-01-01 00:01:00 1

2000-01-01 00:01:30 1

2000-01-01 00:02:00 2

频率:30S,数据类型:int64

将采样频率增加到30S,并用bfill方法填充nan值。

series.resample('30S ')。bfill()[0:5]

2000-01-01 00:00:00 0

2000-01-01 00:00:30 1

2000-01-01 00:01:00 1

2000-01-01 00:01:30 2

2000-01-01 00:02:00 2

频率:30S,数据类型:int64

通过应用运行自定义函数。

def custom_resampler(array_like):

.return np.sum(array_like) 5

series.resample('3T ')。应用(自定义重采样器)

2000-01-01 00:00:00 8

2000-01-01 00:03:00 17

2000-01-01 00:06:00 26

频率:3T,数据类型:int64

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: