【发布时间】:2021-06-23 09:04:38
【问题描述】:
我正在努力处理对时间序列数据的复杂(恕我直言)操作。
我有一个时间序列数据集,并希望将其分解为按块分组的非重叠透视。它按客户、年份和价值进行组织。出于这个玩具示例的目的,我试图将其分解为对未来 3 个月的简单预测。
df = pd.DataFrame({'Customer': {0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5: 'a', 6: 'a', 7: 'b', 8: 'b', 9: 'b'},
'Year': {0: 2020, 1: 2020, 2: 2020, 3: 2020, 4: 2020, 5: 2021, 6: 2021, 7: 2020, 8: 2020, 9: 2020},
'Month': {0: 8, 1: 9, 2: 10, 3: 11, 4: 12, 5: 1, 6: 2, 7: 1, 8: 2, 9: 3},
'Value': {0: 5.2, 1: 2.2, 2: 1.7, 3: 9.0, 4: 5.5, 5: 2.5, 6: 1.9, 7: 4.5, 8: 2.9, 9: 3.1}})
我的目标是创建一个数据框,其中每行包含以 3 个月为轴增量的非重叠数据。因此,每一行都有从该时间点开始出现的 3 个“价值”数据点。我还希望这些数据包含最新数据,因此如果数据量为奇数,则会删除该数据(参见示例 a)。
| Customer | Year | Month | Month1 | Month2 | Month3 |
| b | 2020 | 1 | 4.5 | 2.9 | 3.1 |
| a | 2020 | 9 | 2.2 | 1.7 | 9.0 |
| a | 2020 | 12 | 5.5 | 2.5 | 1.9 |
非常感谢。
【问题讨论】:
-
如果您有 6 个或更多日期为 1 位客户,您希望为该客户提供 2 行或更多行还是只有 1 行?
-
只是 2。为了清楚起见,我更新了示例。
标签: pandas time-series