首页 > 解决方案 > 如何在索引上应用滚动

问题描述

我想计算两个连续索引值之间的小时差,类似于行。

在行的情况下,我做了以下事情:

diffs_a = df['TotalWorkingHours'].rolling(window=2).apply(lambda x: x[1] - x[0])

并得到以下结果:

DateTime
2018-11-16 14:30:31+00:00     NaN
2018-11-16 14:30:41+00:00    0.00
2018-11-16 14:37:21+00:00    0.00
2018-11-16 14:37:31+00:00    0.00
2018-11-16 14:37:41+00:00    0.00
                             ... 
2020-04-25 06:28:54+00:00    0.00
2020-04-25 06:29:04+00:00    0.01
2020-04-25 06:29:14+00:00    0.00
2020-04-25 06:29:24+00:00    0.00
2020-04-25 06:29:34+00:00    0.00

基本上我想做的是以小时为单位计算时间差异,并将这些差异与工作时间差异进行比较(处理相同),如下所示(未正确定义):

diffs_time = df.index.rolling(window=2).apply(lambda x: x[1] - x[0])

标签: pythonpandas

解决方案


尝试reset_index并使用diff“日期时间”列上的方法:

df.reset_index()["DateTime"].diff()

推荐阅读