我有一个dataframe,其中的“date”列的类型为dtypem8[ns],另一个是“expected_response”。然后,有一个列“cumulative_expected”,该列计算具有相同日期的行之间的预期_响应的累计和。数据帧每个月的每一秒都有一行。如下所示:
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,然后按计数器分组。但我不知道怎么做。在
还有别的解决办法吗? 提前谢谢你
有默认索引,因此可以使用楼层划分:
通常解决方案是使用楼层划分创建
^{pr2}$np.arange
:应通过比较^{} ed值与^{} 来更改解决方案:
使用更改的样本数据进行测试:
您可以使用^{} 获取日期的第一个差异,以查看是否发生了更改,并将此作为引用来获取累积和。
在这里,我使用稍微修改的
df
来查看其工作原理:相关问题 更多 >
编程相关推荐