python 时分秒相加大于24h_在python中,将24小时加到负时间差上

如果您只想在timedelta为负的情况下添加1天:df['Interval']=df['Interval'].apply(lambda x: x + Timedelta(days=1) if x < 0 else x)

如果可以安全地假设结束时间在24小时内,则可以检查结束时间是否早于开始时间,并使用timedelta将一天添加到结束时间而不是间隔时间。在

^{pr2}$

有了熊猫,你可以这样做:import pandas as pd

from pandas import Timedelta

d = {

"CallDate": [

"1/8/2009",

"1/11/2009",

"1/9/2009",

"1/11/2009",

"1/16/2009",

"1/17/2009",

"1/19/2009",

"1/20/2009",

"1/20/2009",

"1/23/2009",

"1/30/2009"

],

"BeginningTime": [

"1900-01-01 07:49:00",

"1900-01-01 14:37:00",

"1900-01-01 09:29:00",

"1900-01-01 09:20:00",

"1900-01-01 15:11:00",

"1900-01-01 22:52:00",

"1900-01-01 05:48:00",

"1900-01-01 23:46:00",

"1900-01-01 21:29:00",

"1900-01-01 07:33:00",

"1900-01-01 19:33:00"

],

"EndingTime": [

"1900-01-01 08:19:00",

"1900-01-01 14:59:00",

"1900-01-01 09:56:00",

"1900-01-01 10:13:00",

"1900-01-01 15:50:00",

"1900-01-01 23:26:00",

"1900-01-01 06:32:00",

"1900-01-01 00:21:00",

"1900-01-01 22:08:00",

"1900-01-01 07:55:00",

"1900-01-01 20:01:00"

]

}

df = pd.DataFrame(data=d)

df['BeginningTime']=pd.to_datetime(df['BeginningTime'], format="%Y-%m-%d %H:%M:%S")

df['EndingTime']=pd.to_datetime(df['EndingTime'], format="%Y-%m-%d %H:%M:%S")

def interval(x):

if x['EndingTime'] < x['BeginningTime']:

x['EndingTime'] += Timedelta(days=1)

return x['EndingTime'] - x['BeginningTime']

df['Interval'] = df.apply(interval, axis=1)In [2]: df

Out[2]:

BeginningTime CallDate EndingTime Interval

0 1900-01-01 07:49:00 1/8/2009 1900-01-01 08:19:00 00:30:00

1 1900-01-01 14:37:00 1/11/2009 1900-01-01 14:59:00 00:22:00

2 1900-01-01 09:29:00 1/9/2009 1900-01-01 09:56:00 00:27:00

3 1900-01-01 09:20:00 1/11/2009 1900-01-01 10:13:00 00:53:00

4 1900-01-01 15:11:00 1/16/2009 1900-01-01 15:50:00 00:39:00

5 1900-01-01 22:52:00 1/17/2009 1900-01-01 23:26:00 00:34:00

6 1900-01-01 05:48:00 1/19/2009 1900-01-01 06:32:00 00:44:00

7 1900-01-01 23:46:00 1/20/2009 1900-01-01 00:21:00 00:35:00

8 1900-01-01 21:29:00 1/20/2009 1900-01-01 22:08:00 00:39:00

9 1900-01-01 07:33:00 1/23/2009 1900-01-01 07:55:00 00:22:00

10 1900-01-01 19:33:00 1/30/2009 1900-01-01 20:01:00 00:28:00

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值