【发布时间】:2017-09-21 08:02:51
【问题描述】:
给定一个值,在时间上固定:
2010-06-01 : 100
以及该值在过去和未来发生的变化列表(相对于固定日期):
Date Diff
2010-04-01 30
2010-05-01 20
2010-07-01 60
2010-08-01 10
我想要以下结果:
Date Value
2010-04-01 50
2010-05-01 80
2010-06-01 100
2010-07-01 160
2010-08-01 170
基本上,固定日期之后的差异是累积相加的,固定日期之前的差异是累积减去的。
我目前的解决方案是:
将 diff DataFrame 过滤成两份:一份包含过去的值,一份包含未来的值。
否定过去的 DF,将其附加到当前 DF,降序排序,并进行 cumsum。
获取未来的 DF,将其附加到当前的 DF,升序排序,然后进行 cumsum。
将所有内容附加在一起。
一些入门代码:
pd.DataFrame({'Date': ['2010-04-01', '2010-05-01', '2010-07-01', '2010-08-01'], 'Diff': [30,20,60,10]})
pd.DataFrame({'Date': ['2010-06-01'], 'Value': [100]})
【问题讨论】: