Python时间序列--数据重采样(二)

数据重采样
重采样分为上(升)采样和下采样,下(降)采样时需要对信号进行抽取,上采样时需要对信号进行插值

  • 时间数据由一个频率转换到另一个频率
  • 降采样
  • 升采样
import pandas as pd
import numpy as np
rng = pd.date_range('1/1/2020', periods=90, freq='D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)
ts.head()

在这里插入图片描述
降采样

按月的和

ts.resample('M').sum()

在这里插入图片描述
按3天的和

day3Ts = ts.resample('3D').mean()
day3Ts

在这里插入图片描述
升采样
假如原本的数据就是按3天的和的样子,现在要查看将其他两天的数据,如下:

print(day3Ts.resample('D').asfreq())

在这里插入图片描述
可以发现其他两天是NaN,现在要上采样将其补齐,方法如下:
插值方法:
更详细解析可以看我的数据分析系列和Pandas系列

  1. ffill 空值取前面的值
  2. bfill 空值取后面的值
  3. interpolate 线性取值
day3Ts.resample('D').ffill(1) #要全部补齐,括号里写2就行

在这里插入图片描述

day3Ts.resample('D').bfill(1)

在这里插入图片描述

day3Ts.resample('D').interpolate('linear')

在这里插入图片描述

原创文章 34 获赞 133 访问量 5420

猜你喜欢

转载自blog.csdn.net/jaffe507/article/details/105789063
今日推荐