2022年 11月 5日

python 时间序列数据 重采样

python 时间序列数据 重采样

文章目录

  • 降采样
  • 升采样



🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ



重采样:指将时间序列数据从一个频率转为另一个频率的过程。
重采样可以分为

降采样:高频率到低频率。

升采样:低频率到高频率。

升采样后会产生缺失值。相比而言降采样更为常用。


降采样

import pandas as pd
import numpy as np
# 创建日度数据100条
data1 = pd.DataFrame(np.random.uniform(10, 50, (100, 1)), index=pd.date_range('20220101', periods=100), columns=["value"])
print(data1)
  • 1
  • 2
  • 3
  • 4
  • 5

          在这里插入图片描述


降采样,转为10日数据并求和

data2 = data1.resample('10D').sum()
print(data2)
  • 1
  • 2

          在这里插入图片描述


降采样,转为月度数据 并求和

data3 = data1.resample('M').sum()
print(data3)
  • 1
  • 2

          在这里插入图片描述


升采样

升采样后需要使用asfreq()方法,才能使升采样后的数据转为DataFrame格式,新增的数据都显示为空值。

首先准备一组数据。

data4 = pd.DataFrame(np.random.randint(1000,4000,size=(4,4)),index=pd.date_range('1/1/2022', periods=4, freq='W-WED'), columns=["北京","上海","广州","深圳"])
print(data4)
  • 1
  • 2

          在这里插入图片描述


print(data4.resample('D').asfreq())
  • 1

         在这里插入图片描述


🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ