【发布时间】:2019-06-06 07:43:59
【问题描述】:
我有一个这样的数据框:
df = pd.DataFrame({'runner':[1,1,1,2,2,2],'date':['2017-04-01','2018-04-20','2018-05-25','2015-04-05','2015-10-20','2016-11-29'],'cum_distance':[100,125,130,10,20,50],'reset_event':[1,0,1,1,1,0]})
runner date cum_distance reset_event
0 1 2017-04-01 100 1
1 1 2018-04-20 125 0
2 1 2018-05-25 130 1
3 2 2015-04-05 10 1
4 2 2015-10-20 20 1
5 2 2016-11-29 50 0
数据已按跑步者分组并按日期排序。 'cum_distance' 是总累积距离。
我想计算自重置点以来每个跑步者的累积距离:
runner date cum_distance reset_event runner_dist_since_reset
0 1 2017-04-01 100 1 100
1 1 2018-04-20 125 0 25
2 1 2018-05-25 130 1 30
3 2 2015-04-05 10 1 10
4 2 2015-10-20 20 1 10
5 2 2016-11-29 50 0 30
我如何进行这样的计算? 为了更容易理解 您可以将“runner”视为汽车,将“reset_event”视为加油。我需要计算自上次加油后的距离。
【问题讨论】:
-
你确定这是正确的吗?第 3 行应该是 -120 吗?
-
自重置后更正了第 2 行距离:30 (130 - 100)。谢谢。
-
那我不明白......所以在每个重置点之后你会做的IMO(例如最后一行):最后一行(50-20),(20-10)之前的一个和(10-130)之前的一个。第一个应该是130,就像第1行是100一样。你能帮我理解吗
-
亚图,请注意有不同的跑步者。你的逻辑没问题,但我想计算每个跑步者的进度。
-
嗯,我明白了。刚刚离开,给我一点时间,我会试着用你刚刚告诉我的来解决