需要源码请点赞关注收藏后评论区留言私信~~~
在很多行业,时间序列数据是一种重要的结构化数据类型,如金融、经济、生态学、神经科学和物理学等领域。在多个时间点观测或测量的数据形成了时间序列
一、日期和时间数据类型
1 datetime构造
Python标准库中包含了用于日期(date)、时间(time)、日历(calendar)等功能的数据类型,主要会用到datetime、time、calendar模块,我们主要介绍一下datetime模块
表9-1 datetime库的时间数据类型为
date类型数据的创建
data类型的数据用于创建日期型数据,通过年月日进行存储
import datetime
date = datetime.date(2019,6,1)
print(date)
print(date.year,date.month,date.day)
time类型数据的用法
time类型的数据用于存储时间数据,通过时、分、秒、毫秒进行存储
time = datetime.time(10,20,15)
print(time)
print(time.hour,time.minute,time.second)
Datetime类数据是date类和time类数据的组合,通过now函数可以查看当前的时间
timedelta类数据为两个datetime类数据的差,也可以通过给datetime类对象加或减去timedelta类对象,以此获得新的datetime对象
timedelta类数据应用
now = datetime.datetime.now()
birth = datetime.datetime(2016,5,1,18,30,25)
delta = now-birth
print(delta)
2 数据转换
在数据分析中,字符串和datetime类数据需要进行转换,通过str方法可以直接将datetime类数据转换为字符串数据
1. datetime -> str:将datetime类数据转换为字符串数据。 str方法: datetime.strftime 可以将datetime类数据转换为格式化字符串数据
2. str -> datetime :将字符串数据转换为datetime类数据。 datetime.strptime(…) 根据string, format 2个参数,返回一个对应的datetime对象
datetime格式说明
将datetime类数据转换为字符串数据
from datetime import datetime
stamp = datetime(2019,6,4)
print(str(stamp))
如果需要将datetime类数据转换为特定格式的字符串数据,需要使用strftime方法
strftime方法转换datetime类型数据
stamp.strftime('%Y/%m/%d')
字符串转换为日期类型
w_value = '2019-6-23'
print(datetime.strptime('2019-06-23','%Y-%m-%d'))
datestrs = ['7/19/1976','8/1/1976']
[datetime.strptime(x,'%m/%d/%Y') for x in datestrs ]
在Pandas中也可以通过to_datetime方法快速将一列字符串数据转换为datetime数据
二、时间序列基础
Pandas中的基础时间序列种类是由时间戳索引的Series,在Pandas外部则表示为Python字符串或datetime对象
Pandas中的时间序列指的是以时间数据为索引的Series或DataFrame,构造方法即为Series的构造方法
时间序列的构造
import pandas as pd
import numpy as np
w_dates = [datetime(2018,5,15),datetime(2018,6,15),datetime(2019,5,18),datetime(2019,5,25)]
s = pd.Series(np.arange(4),index = w_dates)
print(s)
和其他Series类似,不同索引的时间序列之间的算术运算在日期上会自动对齐
时间序列的索引方法和pandas基础数据类型的用法是一样的
print(s)
print(s[2])
时间序列的切片
s[:2]
利用索引进行时间序列的切片
s['2019-05-15':'2019-05-18']
利用年获取时间序列切片
s['2018']
利用年和月获取时间序列切片
s['2018-6']
查看重复时间序列
s.index.is_unique
创作不易 觉得有帮助请点赞关注收藏~~~