【发布时间】:2015-04-27 23:08:37
【问题描述】:
我正在使用 python 来计算两个事件之间的时间间隔。每个事件都有一个“开始时间”和一个“结束时间”。我在一个新列“间隔”中发现了两者之间的差异,但是当开始和结束时间在不同的日子时有负值(例如开始 23:46:00 和结束 00:21:00 给出 -23 :25:00)。我想创建一个 if 语句来运行“间隔”列并将 24 小时添加到任何负值。但是,我在将 24 小时添加到“间隔”值时遇到了问题。目前我的“间隔”dtype=timedelta64[ns]。
这里有一点表格来澄清问题:
CallDate BeginningTime EndingTime Interval
75 1/8/2009 1900-01-01 07:49:00 1900-01-01 08:19:00 00:30:00
76 1/11/2009 1900-01-01 14:37:00 1900-01-01 14:59:00 00:22:00
77 1/9/2009 1900-01-01 09:29:00 1900-01-01 09:56:00 00:27:00
78 1/11/2009 1900-01-01 09:20:00 1900-01-01 10:13:00 00:53:00
79 1/16/2009 1900-01-01 15:11:00 1900-01-01 15:50:00 00:39:00
80 1/17/2009 1900-01-01 22:52:00 1900-01-01 23:26:00 00:34:00
81 1/19/2009 1900-01-01 05:48:00 1900-01-01 06:32:00 00:44:00
82 1/20/2009 1900-01-01 23:46:00 1900-01-01 00:21:00 -23:25:00
83 1/20/2009 1900-01-01 21:29:00 1900-01-01 22:08:00 00:39:00
84 1/23/2009 1900-01-01 07:33:00 1900-01-01 07:55:00 00:22:00
85 1/30/2009 1900-01-01 19:33:00 1900-01-01 20:01:00 00:28:00
更新:这是引导我到这一点的代码
df['BeginningTime']=pd.to_datetime(df['BeginningTime'], format='%H:%M')
df['EndingTime']=pd.to_datetime(df['EndingTime'], format='%H:%M')
df['Interval']=df['EndingTime']-df['BeginningTime']
df[['CallDate','BeginningTime','EndingTime','Interval']]
【问题讨论】:
标签: python datetime if-statement timedelta