python - 如何在索引上应用滚动
问题描述
我想计算两个连续索引值之间的小时差,类似于行。
在行的情况下,我做了以下事情:
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])
解决方案
尝试reset_index
并使用diff
“日期时间”列上的方法:
df.reset_index()["DateTime"].diff()