【发布时间】:2018-11-28 18:23:38
【问题描述】:
我有一个数据框,其中有一列“日期”类型为 dtype M8[ns] 和另一个“expected_response”。然后,有一个列“cumulative_expected”,它对具有相同日期的行中的expected_response 进行累积总和。数据框每个月都有一行。如下:
date Expected_response cumulative_expected
0 2018-03-01 0.270 0.270
1 2018-03-01 0.260 0.530
2 2018-03-01 0.240 0.770
3 2018-03-01 0.224 0.994
4 2018-03-01 0.204 1.198
5 2018-03-01 0.194 1.392
6 2018-03-01 0.190 1.582
... ... ... ...
2678395 2018-03-31 0.164 -7533.464
2678396 2018-03-31 0.164 -7533.300
2678397 2018-03-31 0.160 -7533.140
2678398 2018-03-31 0.154 -7532.986
2678399 2018-03-31 0.150 -7532.836
如您所见,有一个错误:累积和不识别日期的更改,并且每次日期更改时累积和都不会重新开始。
代码是:
df['cumulative_expected']=df.groupby(df['date']!=df['date'])['Expected_response'].cumsum()
也许一个选项可以是创建一个计数器,每 86400 行(一天中的秒数)增加 1,然后按计数器分组。但我不知道该怎么做。
还有其他解决办法吗? 提前谢谢你
【问题讨论】: