pandas-时间序列重构-resample

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas-时间序列重构-resample相关的知识,希望对你有一定的参考价值。

参考技术A

同样也是上一篇练习遇到的函数,感觉有点儿复杂,这里学习下。

DataFrame.resample(self, rule, axis=0, closed: Union[str, NoneType] = None, label: Union[str, NoneType] = None, convention: str = \'start\', kind: Union[str, NoneType] = None, loffset=None, base: int = 0, on=None, level=None)

Resample time-series data

Convenience method for frequency conversion and resampling of time series. Object must have a datetime-like index (DatetimeIndex, PeriodIndex, or TimedeltaIndex), or pass datetime-like values to the on or level keyword.

这个函数是针对时间序列,对DataFrame进行重构
关于 date_range 可以参考上一篇: pandas - date_range

我们先创建个数据

这里,主要是需要指定一个重构的规则

resample就是根据2D,2D表示就是2天,也就是根据2天重新构建DataFrame
我们这里就调用sum函数,将符合这个规则的元素求和

我们来观察index,原来是1-10,现在变成1,3,5,7,9,也就是间隔2天一组

label参数
指定,我们使用哪一个作为新的label

closed参数
这个稍微有点儿奇怪
label的话,是说,我们重组了数据之后,会有多行记录进行合并,那应该取哪一行的label来显示呢?label就是用来指定这个的;
但是closed参数呢?
Which side of bin interval is closed. The default is ‘left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’.

我们再来看一下原始数据:

我们来试试closed参数
默认是 closed=\'left\'

这里理解起来还是可以的,2天为一个间隔,label也默认是left

然后,我们来看看 closed=\'right\'

这里,我就有点儿疑惑了,数据的重组是我在Excel中用颜色标出来的,这个我可以理解,但是这个label,为什么往前多取了一个

有点儿奇怪,我得捋一捋

pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征

pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征

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

See the source image

resample与groupby的区别:


resample:在给定的时间单位内重取样
groupby:对给定的数据条目进行统计

方法的格式是:

以上是关于pandas-时间序列重构-resample的主要内容,如果未能解决你的问题,请参考以下文章

pandas 时间序列resample

pandas的resample重采样

Python 之 Pandas 生成时间戳范围Pandas 的时期函数 Period() 和时间序列 - 重采样 resample

Pandas中resample方法详解

在 pandas 数据帧上同时操作 groupby 和 resample?

pandas df.resample('D').sum() 返回 NaN