比方说,我有以下数据框:如何计算事件的发生之间的时间的时间序列数据帧
df
A B C D event
Timestamp
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0
使用的代码
df['delta_time'] = (df['event']-df['event'].shift()).fillna(0)
我得到
Timestamp A B C D event delta_time
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0 00:00:00
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0 07:59:00
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN 05:43:00
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0 08:44:00
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN 06:05:00
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0 03:16:00
1991-04-23 07:25:00 11.0 13.0 NaN NaN 257.0 14:29:00
但我正在寻找的是
Timestamp
1991-04-21 09:09:00 9.0 13.0 NaN NaN 100.0 00:00:00
1991-04-21 17:08:00 7.0 NaN NaN NaN 119.0 07:59:00
1991-04-21 22:51:00 NaN NaN 123.0 NaN NaN NaN
1991-04-22 07:35:00 10.0 13.0 NaN NaN 216.0 13:42:00
1991-04-22 13:40:00 2.0 NaN NaN NaN NaN NaN
1991-04-22 16:56:00 7.0 NaN NaN NaN 211.0 09:21:00
1991-04-23 07:25:00 11.0 13.0 NaN NaN 257.0 14:29:00
我想计算每次事件发生时已经过去的时间,并省略事件发生时的时间。那么编写该代码的正确方法是什么?
此行'DF ['delta_time '] =(df ['event'] - df ['event']。shift ())。fillna(0)'与您的输出或意图不匹配,因为这会减去数字的事件列 – EdChum