Python数据分析

Python数据分析 知识量:13 - 56 - 232

11.5 时间计算><

时差- 11.5.1 -

Python中两个时间相减会返回一个timedelta对象,这个对象包含天数、秒和微秒,如果要得到准确的小时、分钟,就需要进行转换。下面是一个示例:

>>> from datetime import datetime
>>> c=datetime.now()-datetime(2021,7,1,8,10)
>>> c
datetime.timedelta(days=5, seconds=4810, microseconds=658477)
>>> c.days
5
>>> c.seconds
4810  
>>> c.seconds/3600
1.336111111111111

代码中最后一行是将时间差的秒部分转换为小时后的结果。

时间偏移- 11.5.2 -

时间偏移就是对某个时间点前推或后推一段时间。在Python中可以使用timedelta对象或Pandas中的日期偏移量来实现。

1、使用timedelta对象。

timedelta对象的方法只能偏移天、秒和微秒单位的时间,如果要偏移小时等其他单位,就需要换算后再操作。

>>> from datetime import datetime
>>> from datetime import timedelta
>>> now=datetime.now()
>>> now
datetime.datetime(2021, 7, 6, 11, 57, 44, 207549)
>>> now+timedelta(days=3)  # 3天之后的时间
datetime.datetime(2021, 7, 9, 11, 57, 44, 207549)
>>> now-timedelta(seconds=3600)  # 1小时之前的时间,即3600秒之前。
datetime.datetime(2021, 7, 6, 10, 57, 44, 207549)

2、使用Pandas日期偏移量。

Pandas的日期偏移量可以直接进行天、小时、分钟单位时间的偏移,不需要换算。

>>> from datetime import datetime
>>> from pandas.tseries.offsets import Day,Hour,Minute
>>> now=datetime.now()
>>> now
datetime.datetime(2021, 7, 6, 12, 0, 33, 64299)
>>> now+Day(30)  #  30天之后的时间
Timestamp('2021-08-05 12:00:33.064299')
>>> now+Hour(1)  # 1小时之后的时间
Timestamp('2021-07-06 13:00:33.064299')
>>> now-Minute(5)  # 5分钟之前的时间
Timestamp('2021-07-06 11:55:33.064299')