时间序列数据重采样

对于给定的时间序列数据,可以重新指定数据的采集频率,即修改前面创建时间序列时讲的时长增量,并重新聚合修改后时长范围内的数据。[大谦MATLAB,dqmatlab点com]

【MATLAB】

MATLAB中使用retime函数对给定时间表进行重采样。下面读取给定文件中的时间序列数据到时间表TT。该数据是每隔1小时测量1个值,如图11-1所示,所以一天有24个值。

code.matlab
>> TT=readtimetable('D:\Samples\ch11\时间序列.xlsx',VariableNamingRule='preserve',RowTimes='时间');

用retime函数将数据采集频率改为按天,并计算当天所有测量值的平均值。

code.matlab
>> TT1=retime(TT,'daily','mean')
TT1 =
  5×1 timetable
       时间       测量值
    __________    ______
    2022-03-18    5.5417
    2022-03-19    4.4167
    2022-03-20    6.0833
    2022-03-21    4.9583
    2022-03-22       7.5

【Python】

Python中使用pandas包中DataFrame对象的resample方法对数据进行重采样。计算当天所有测量值的均值。

code.python
>>> import pandas as pd
>>> df=pd.read_excel(r'F:\01 MATLAB+Python双语对照学习\Samples\ch11\时间序列.xlsx', sheet_name=0, index_col=0, engine='openpyxl')
>>> df_dayly=df.resample('D').mean()
>>> df_dayly
                 测量值
时间
2022-03-18  5.541667
2022-03-19  4.416667
2022-03-20  6.083333
2022-03-21  4.958333
2022-03-22  7.500000