时间序列
1.重采样(Resample方法)
在Pandas中,对时间序列的频率的调整称之重新采样,即将时间序列从一个频率转换到另一个频率的处理过程
重采样主要使用resample方法,该方法用于对常规时间序列重新采样和频率转换,包括降采样和升采样。
DataFrame.resample(rule,how=None,axis=0,fill_method=None,closed=None,label=None,convention='start',kind=None,loffset=None,limit=None,base=0,on=None,level=None)
举个例子:首先创建一个包含9个一分钟的时间序列,然后使用resample方法转换为3分钟的时间序列并对索引列进行求和计算。
import pandas as pd
index = pd.date_range('02/02/2020', periods=9, freq='T')
series = pd.Series(range(9), index=index)
print(series)
print(series.resample('3T').sum())
输出结果
2020-02-02 00:00:00 0
2020-02-02 00:01:00 1
2020-02-02 00:02:00 2
2020-02-02 00:03:00 3
2020-02-02 00:04:00 4
2020-02-02 00:05:00 5
2020-02-02 00:06:00 6
2020-02-02 00:07:00 7
2020-02-02 00:08:00 8
Freq: T, dtype: int64
2020-02-02 00:00:00 3
2020-02-02 00:03:00 12
2020-02-02 00:06:00 21
Freq: 3T, dtype: int64
2.降采样处理
降采样是周期由高频率转向低频率。例如,将5min的股票交易数据转换为日交易,按天统计的销售数据转换为按周统计
数据降采样会涉及到数据的聚合。聚合的方式主要包括求和、求均值等。
import pandas as pd
df = pd.read_excel('time.xls')
print(df)
df1 = df.set_index('订单付款时间')
print(df1.resample('w').sum().head())
输出结果
买家会员名 ... 订单付款时间
0 mr00001 ... 2018-01-01 09:26:18
1 mr00003 ... 2018-01-01 10:06:07
2 mr00004 ... 2018-01-01 10:06:48
3 mr00002 ... 2018-01-01 10:18:12
4 mr00005 ... 2018-01-01 16:08:22
.. ... ... ...
193 mr00232 ... 2018-01-31 13:11:52
194 mr00234 ... 2018-01-31 17:17:58
195 mr00235 ... 2018-01-31 20:29:59
196 mr00236 ... 2018-01-31 21:02:30
197 mr00237 ... 2018-01-31 22:45:01
[198 rows x 5 columns]
买家实际支付金额 宝贝总数量
订单付款时间
2018-01-07 5735.91 77
2018-01-14 4697.62 70
2018-01-21 5568.77 74
2018-01-28 5408.68 53
2018-02-04 1958.19 19