datetime.time格式的时间相加减运算。

8 篇文章 1 订阅
4 篇文章 0 订阅

pandas中时间序列计算。

datetime.datetime()  格式的可以相加减;但是datetime.time()  格式的不能相加减。

在网上找寻之后,有人说可以换成timestamp()格式可以进行加减计算,但是我不会转换。只能将datetime.time()格式转化为datatime.datetime()格式了。

这里会使用第三方库  dateutil。

import pandas as pd
import datetime,time
from dateutil import parser

la = pd.read_excel("C:/Users/xujinhua/Desktop/the USA data2/a.xlsx",names=['data','hour','ap','detection','mac'],header=None)
print(la.head(5))

先看一下数据的前5行

现在想要对hour列进行计算。

可以看到hour列都是时间格式,程序读出来是datetime.time()格式。由于此格式不能进行加减计算,所以要对其进行一些转化。此处有2种方法:

1.将datetime.time()变为timestamp()即时间戳 ;

2.将datetime.time()变为datetime.datetime()格式

对于第一种方法,我没弄懂;这里给出第二种方法的程序

t1=str(la.loc[1,'hour']) #找出hour第1行的值,此值为datetime.time格式,通过str()将其变为字符串。
print(t1)  
tt1=parser.parse(t1)
print(tt1)
#tt1.type()  tt1是datetime.datetime格式的。
t2 = str(la.loc[2,'hour'])
tt2= parser.parse(t2)
print(tt2)
print((tt2 - tt1).seconds)  #结果以秒来表示。

结果如下

参考资料:

1. Python datetime模块详解、示例:https://blog.csdn.net/cmzsteven/article/details/64906245

2.Python日期时间的运算:https://blog.csdn.net/abby1559/article/details/79985289

3.python 两个 datetime.time怎么相加减?:https://www.oschina.net/question/3871145_2280580

4. python 第三方库 dateutil.parser 使用说明:

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
datetime模块中的time类表示一个时间对象,它只包含小时、分钟、秒和微秒,不包含日期信息。time对象可以进行加减操作,返回一个新的time对象。 要将两个time对象加,可以使用timedelta对象来表示时间间隔。timedelta对象可以通过datetime模块的timedelta类来创建。 下面是一个示例代码,演示了如何进行time对象的加减操作: ```python import datetime # 创建两个time对象 time1 = datetime.time(10, 30, 0) time2 = datetime.time(2, 45, 0) # 创建一个timedelta对象,表示要添加的时间间隔 delta = datetime.timedelta(hours=1, minutes=15) # 将时间间隔添加到time1上,得到新的time对象 new_time = (datetime.datetime.combine(datetime.date.today(), time1) + delta).time() print(new_time) # 输出: 11:45:00 # 将时间间隔从time2中减去,得到新的time对象 new_time = (datetime.datetime.combine(datetime.date.today(), time2) - delta).time() print(new_time) # 输出: 01:30:00 ``` 在上面的示例中,我们首先创建了两个time对象,分别是time1和time2。然后我们创建了一个timedelta对象delta,表示要添加的时间间隔,这里是1小时15分钟。接下来,我们使用datetime模块中的combine函数将date.today()(表示当前日期)与time1组合起来,得到一个datetime对象。然后将datetime对象与timedelta对象加,得到一个新的datetime对象,最后通过time()方法获取新的time对象。 同样的方法也可以用于减去时间间隔。 请注意,time对象是不可变的,因此进行加减操作时,并不会改变原有的time对象,而是返回一个新的time对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值