7.1 获取当前时刻的时间

获取当前时刻的时间就是获取此时此刻与时间相关的数据,除了具体的年、月、日、时、分、秒,还会单独看年、月、周、日等指标。

7.1.1 返回当前时刻的日期和时间

返回当前时刻的日期和时间在Python中借助函数now()实现。使用如下代码:

  1. from datetime import datetime
  2. datetime.now()

7.时间序列 - 图1

7.1.2 分别返回当前时刻的年、月、日

返回当前时刻的年、月、日,在Python中分别借助函数year、month、day实现。使用如下代码:

  1. datetime.now().year
  1. datetime.now().month
  1. datetime.now().day

7.时间序列 - 图2

7.1.3 返回当前时刻的周数

与当前时刻的周相关的数据有两个,一个是当前时刻是一周中的周几,另一个是返回当前时刻所在的周在全年的周里面是第几周。

返回周几

返回当前时刻是周几在Python中借助weekday()函数实现。

在Python中使用如下代码:

  1. datetime.now().weekday()+1

7.时间序列 - 图3

Python中周几是从0开始数的,周日返回的是6,所以在后面加1。

返回周数

返回当前时刻所在周的周数在Python中使用的是isocalendar()函数。

在Python中使用如下代码:

  1. datetime.now().isocalendar()
  1. datetime.now().isocalendar()[1]

7.时间序列 - 图4

7.2 指定日期和时间的格式

借助date()函数将日期和时间设置成只展示日期。

7.时间序列 - 图5

借助time()函数将日期和时间设置成只展示时间。

7.时间序列 - 图6

借助strftime()函数可以自定义时间和日期的格式,strftime()函数是将日期和时间的格式转化为某些自定义的格式,具体的格式有以下几种。

7.时间序列 - 图7

7.时间序列 - 图8

7.3 字符串和时间格式相互转换

7.3.1 将时间格式转换为字符串格式

使用str()函数将时间格式转换为字符串格式,示例如下:

7.时间序列 - 图9

7.3.2 将字符串格式转换为时间格式

使用parse()函数将字符串格式转换为时间格式。

7.时间序列 - 图10

7.4 时间索引

时间索引就是根据时间来对时间格式的字段进行数据选取的一种索引方式。

在Python中,可以选取具体的某一时间对应的值,也可以选取某一段时间内的值。

新建一个时间索引的DataFrame如下:

  1. import pandas as pd
  2. import numpy as np
  3. index = pd.DatetimeIndex(['2021-01-01','2021-01-02','2021-01-03','2021-01-04','2021-01-05','2021-01-06','2021-01-07','2021-01-08','2021-01-09','2021-01-10'])
  4. data = pd.DataFrame(np.arange(1,11),columns = ["num"],index = index)
  5. data

7.时间序列 - 图11

获取2021年的数据:

  1. data["2018"]

7.时间序列 - 图12

获取2021年1月的数据:

  1. data["2021-01"]

7.时间序列 - 图13

获取2021年1月1日到2021年1月5日的数据:

  1. data["2021-01-01":"2021-01-05"]

7.时间序列 - 图14

获取2021年1月1日的数据:

  1. data["2021-01-01":"2021-01-01"]

7.时间序列 - 图15

上面的索引方法适用于索引是时间的情况下,但是并不是在所有情况下,时间都可以做索引,比如一个订单表中客户姓名是索引,成交时间就是一个普通列,这个时候你想选取某一段时间内的成交订单该怎么办呢?因为时间也是有大小关系的,所以我们可以利用前面学过的索引方式中的布尔索引来对非索引列的时间进行选取,代码如下:

7.时间序列 - 图16

7.5 时间运算

7.5.1 两个时间之差

在Python中两个时间做差会返回一个timedelta对象,该对象中包含天数、秒、微秒三个等级,如果要获取小时、分钟,则需要进行换算。

7.时间序列 - 图17

7.5.2 时间偏移

时间偏移是指给时间往前推或往后推一段时间,即加或减一段时间。

在Python中实现时间偏移的方式有两种:第一种是借助timedelta,但是它只能偏移天、秒、微秒单位的时间;第二种是用Pandas中的日期偏移量(dateoffset)。

timedelta

由于timedelta只支持天、秒、微秒单位的时间运算,如果是其他单位的时间运算,则需要换算成以上三种单位中的一种方可进行偏移。

7.时间序列 - 图18

date offset

date offset 可以直接实现天、小时、分钟单位的时间偏移,不需要换算,相比timedelta要方便一些。

7.时间序列 - 图19