使用SQL或Pandas

时间:2018-03-08 16:20:10

标签: mysql pandas

我的每周数据可以追溯到2009年。我期待每周一次的数据并将其插入到每日数据中。这是销售数据,因此肯定有日/周末趋势,所以我想做一些更聪明的事情而不仅仅是将每周数除以7.但是所有的数据点都在星期六结束所以我不得不采取一些标准的加权方案也许。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

创建一个每周一行的表格,以及相关的加权值(每周总计的百分比)。

CREATE TABLE WeightByDow (
 dow TINYINT NOT NULL PRIMARY KEY,
 weight DECIMAL(2,2) NOT NULL
);
INSERT INTO WeightByDow (dow, weight) VALUES
(1, 0.10), (2, 0.16), (3, 0.16), (4, 0.16), (5, 0.16), (6, 0.16), (7, 0.10);

为权重选择您想要的任何内容,但请确保它们加起来为1.00。

然后您可以加入您的每周数据:

SELECT d.date - INTERVAL DAYOFWEEK(d.date) DAY + INTERVAL w.dow DAY AS date,
  d.value * w.weight AS daily_value
FROM WeeklyData AS d
CROSS JOIN WeightByDow AS w

我从未使用过Pandas所以我无法评论如何在该框架中使用此技术。