df.resample——如何把日度数据转化为周度数据

老板甩给我们一堆日度数据,说要跟其他数据merge使用,而其他数据是周度的,因此需要把日度数据中转化为周度数据。我们可能会想着直接两个merge就好了,但实际上并不是这样。
我们的数据长这样:
日期
产品交易量
产品价格
2022-01-01
38
61.564967
2022-01-02
13
4.661551
2022-01-03
73
44.665341
2022-01-04
10
96.804464
2022-01-05
76
36.020075
因为日度数据转化为周度数据,并不是简单取最后一天。例如价格,可能取这周的价格平均数,成交量,可能取这周成交量的加总。
于是我们的思路是,生成一个新列,判断是星期几,如果遇到星期日就把前7天的成交量相加,价格取平均。但这样很累的。所以这里介绍一个有用的函数:
df.resample是Pandas中的一个强大的时间序列重采样方法,它允许我们将时间序列数据从一个频率转换为另一个频率。该方法常用于将高频率数据降采样为低频率数据(如将分钟数据转换为小时数据),或者将低频率数据升采样为高频率数据(如将月度数据转换为每日数据)。
下面是df.resample的一般语法:
其中,rule是一个字符串参数,指定重采样的规则或频率。它可以是以下几种常见的规则:
  • 'D':按天重采样
  • 'W':按周重采样
  • 'M':按月重采样
  • 'Q':按季度重采样
  • 'A':按年重采样
此外,还可以使用其他频率规则,例如'H'表示按小时重采样,'T'表示按分钟重采样等。
重采样操作通常与聚合函数一起使用,以便在转换过程中对数据进行聚合。一些常见的聚合函数包括:
  • mean():计算平均值
  • sum():计算总和
  • min():计算最小值
  • max():计算最大值
  • count():计算非缺失值的数量
举个例子
此时生成的数据是上面已经提到的那个数据
日期
产品交易量
产品价格
2022-01-02
51
33.113259
2022-01-09
327
55.875075
2022-01-16
256
70.283696
2022-01-23
241
65.349920
2022-01-30
538
48.355630
如何把dataframe每行最大值高亮如何自动写周报 —— 表格篇
  • Twikoo
  • Utterance
心情随笔
量化
机器学习
爬虫
开发
Python
Javascript
社会常识
课程笔记
Stata
科研笔记