【发布时间】:2018-02-20 00:21:09
【问题描述】:
我有这样的数据。每行代表该 ID 在某个日期的值。
ID Date Value
A 2012-01-05 50
A 2012-01-08 100
A 2012-01-10 200
B 2012-07-01 10
B 2012-07-03 20
我需要扩展它,以便我整天都有行。每天的值应该是前一天的值(即,将上面的数据视为值的更新,将下面的数据视为值的时间序列)。
ID Date Value
A 2012-01-05 50
A 2012-01-06 50
A 2012-01-07 50
A 2012-01-08 100
A 2012-01-09 100
A 2012-01-10 200
B 2012-07-01 10
B 2012-07-02 10
B 2012-07-03 20
目前,我的解决方案如下:
- 按 ID 分组
- 对于每个组,找出最小和最大日期
- 创建一个 pd.date_range
- 同时遍历行和日期范围,填充日期范围中的值并在必要时增加行的索引指针
- 将所有这些日期范围附加到最终数据帧
它有效,但似乎是一个非常糟糕的蛮力解决方案。我想知道 Pandas 是否支持更好的方法?
【问题讨论】:
-
类似于stackoverflow.com/questions/42151886/…,但不完全相同。