在金融、经济、物理学等领域,都需要在多个时间点观测或者测量数据,这样就产生了关于时间序列的数据。
时间序列数据(Time Series Data)是在不同时间上收集到的数据,这类数据是按时间顺序收集到的,用于描述现象随时间变化的情况。
学会如何对时间序列数据进行巧妙的处理非常重要,Pandas为我们提供了强大的时间序列数据处理的方法。
一、日期和时间数据类型
Python标准库包含了日期和时间数据的数据类型,datetime模块是开始处理时间数据最广泛的。
下面我们先简单的了解下python日期和时间数据类型。
datetime是一个关于时间的库,常用的类有:
日期类型的使用:
import datetime
# 创建日期
date = datetime.date(2020,5,31)
print(date)
# 获取年
print(date.year)
# 获取月
print(date.month)
# 获取日
print(date.day)
2020-05-31
2020
5
31
时间(time)类型的使用,如下所示:
import datetime
time = datetime.time(13,14,20)
print(time)
# 获取小时
print(time.hour)
# 获取分钟
print(time.minute)
# 获取秒
print(time.second)
13:14:20
13
14
20
日期和时间的结合(datetime):
import datetime
datetime = datetime.datetime(2020,5,31,13,14,20)
print(datetime)
# 获取年
print(datetime.year)
# 获取月
print(datetime.month)
# 获取日
print(datetime.day)
# 获取小时
print(datetime.hour)
# 获取分钟
print(datetime.minute)
# 获取秒
print(datetime.second)
2020-05-31 13:14:20
2020
5
31
13
14
20
小结:
datetime模块:
- time方法可以创建时间
- date方法可以创建日期
- datetime方法则是日期和时间的结合体。
- 通过year、month、day、hour、minute、second属性,可以获取到相应的日期或者时间的值。
- 使用datetime.now()方法可以获取到当前时间:
datetime = datetime.now()
print(datetime)
2020-05-31 12:21:27.681568
现在我们知道如何使用datetime模块创建时间,但是有些时候我们可能需要将datetime类型转成字符串样式。
例如:将datetime.datetime(2019, 9, 9, 13, 14, 20)转换成2019-9-9 13:14:20样式的字符串。
有的同学会问道:“datetime.datetime(2019, 9, 9, 13, 14, 20)输出的的结果不就是2019-9-9 13:14:20吗?为什么还需要变?”。
没错,它的结果就是我们想要的样式,但是,需要注意的是它的类型是datetime,并不是str。
如果我们只是单一的想改变类型,就可以使用强制类型转换:
datetime = datetime.now()
print(type(datetime))
str_datetime = str(datetime)
print(str_datetime)
print(type(str_datetime))
<class 'datetime.datetime'>
2020-05-31 12:28:05.940736
<class 'str'>