一、日期和时间数据类型
1.datetime构造
类型 | 使用说明 |
---|---|
date | 日期(年、月、日) |
time | 时间(时、分、秒、毫秒) |
datetime | 日期和时间 |
timedelta | 两个datetime的差(日、秒、毫秒) |
tzinfo | 用于存储时区信息的基本类型 |
(1)date类型数据的创建
import datetime
date=datetime.date(2021,9,10)
print(date) #2021-09-10
print(date.year,date.month,date.day) #2021 9 10
(2)time类型数据的用法
time=datetime.time(10,20,15)
print(time) #10:20:15
print(time.hour,time.minute,time.second) #10 20 15
(3)使用now函数查看当前时间
now=datetime.datetime.now()
print(now)
(4)timedelta类数据应用
可以通过给datetime类对象加或减去类对象,以此获得新的datetime对象
now=datetime.datetime(2021,9,10)
birth=datetime.datetime(2020,9,10)
delta=now-birth
print(delta)
newdatetime=birth+datetime.timedelta(120)
print(newdatetime)
2.数据转换
通过str方法可以直接将datetime类数据转换为字符串数据
(1)将datetime类数据转换为字符串数据
from datetime import datetime
stamp=datetime(2021,9,10)
print(str(stamp)) #2021-09-10 00:00:00
(2)使用strftime方法转换datetime类型数据
将datetime类数据转换为特定格式的字符串数据,需要使用strftime方法
类型 | 描述 |
---|---|
%Y | 四位的年份 |
%y | 两位的年份 |
%m | 两位的月份[01,……,12] |
%d | 两位的日期[01,……,31] |
%H | 小时,24小时制[00,……,24] |
%I | 小时,12小时制[01,……,12] |
%M | 两位的分钟[00,……,59] |
%S | 两位的秒 |
%W | 每年的第几周,星期一为每周第一天 |
%F | %Y-%m-%d的简写 |
%D | %m/%d/%y的简写 |
stamp.strftime('%Y/%m/%d')
(3)将字符串转为日期类型
使用datetime.strptime和格式码将字符串转为日期
day='2021-9-11'
print(datetime.strptime('2021-9-11','%Y-%m-%d'))
datestrs=['9/10/2021','9/9/2021']
[datetime.strptime(x,'%m/%d/%Y') for x in datestrs]
其实也可以在pandas中通过to_datetime方法快速将一列字符串数据转换为datetime数据。
二、时间序列基础
pandas中的基础时间序列种类是由时间戳索引的series,在pandas外部则表示为python字符串或datetime对象。
1.时间序列构造
(1)时间序列构造
import pandas as pd
import numpy as np
date=[datetime(2021,9,11),datetime(2021,9,21),datetime(2021,9,1),datetime(2021,8,11)]
s=pd.Series(np.arange(4),index=date)
print(s)
输出:
2021-09-11 0
2021-09-21 1
2021-09-01 2
2021-08-11 3
dtype: int32
(2)显示时间序列的索引
创建时间序列Series的索引为DatetimeIndex对象
(3)时间序列索引对齐
2.索引与切片
(1)时间序列的索引
(2)时间序列的切片
(3)使用索引获取时间序列的切片
s['2021-09-11':'2021-09-01']
(4)使用获取时间序列的切片
s['2019']
#输出2019年的
(5)使用年和月获取时间序列的切片
s['2019-09']