数据重采样
重采样分为上(升)采样和下采样,下(降)采样时需要对信号进行抽取,上采样时需要对信号进行插值
- 时间数据由一个频率转换到另一个频率
- 降采样
- 升采样
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系列
- ffill 空值取前面的值
- bfill 空值取后面的值
- interpolate 线性取值
day3Ts.resample('D').ffill(1) #要全部补齐,括号里写2就行
day3Ts.resample('D').bfill(1)
day3Ts.resample('D').interpolate('linear')