datetime数据类型常用方法:

在项目中从数据库中取出数据后通常需要先绘制图像进行数据的观察,此过程中使用到的方法:

1.时间数据类似于 2022-03-23 14:21:45 可以先转换为datetime类型的数据:可以使用pd.to_datetime()方法将时间转换为datetime类型

例如:
time = pd.to_datetime(''2022-03-23 14:21:45'') 输出结果:Timestamp(''2022-03-23 14:21:45'')转换成功

2. time.date()/time()可以分别取出时间的日期/时间信息,time.year/month/day/hour/minute/second可以分别取出时间的年、月、日、小时、分钟、秒数

例如:
time.date() 输出:2022-03-23
time.time() 输出:14:21:45
time.year 输出:2022
time.month 输出:3
time.day 输出:23
time.hour 输出:14
time.minute 输出:21
time.second 输出:45

3.time.strftime(format[, t]) 函数用于格式化时间,返回以可读字符串表示的当地时间,格式由参数 format 决定。

参数

  1. format -- 格式字符串。
  2. t -- 可选的参数t是一个struct_time对象。

说明:
python中时间日期格式化符号如下:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

例如:time1 = time.strftime("%Y-%m-%d %H:%M:%S") 输出:time1为'2022-03-23 14:21:45' 类型为str

可以通过改变括号内参数的样式来选取自己想要的结果:
例如:time1 = time.strftime("%Y-%m-%d") 输出:time1为'2022-03-23' 类型为str

例如:time1 = time.strftime("%H:%M") 输出:time1为'14:21' 类型为str

4.如果要将3.中转变为str类型的时间再转变回datetime那么可以使用datetime.strptime(date, format)进行转换。

参数:

  1. date
    ○ 必需。
    ○ 要解析的字符串(例如:由 strftime() 返回的)。
  2. format
    ○ 必须。
    ○ 规定日期中要使用的格式与strftime一样

例如time1 = '2022-03-23 14:21:45'
time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M:%S") 输出:time2为2022-03-23 14:21:45 类型为datetime

5.可以在4.的基础上加入date()和time()方法取出其中的各个部分

假设:time1 = '2022-03-23 14:21'

可以在其中加入date()方法取出其中的年、月、日
例如:time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M").date() 输出:time2为2022-03-23 类型为datetime

可以在其中加入time()方法取出其中的小时、分钟、秒
例如:time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M:%S").time() 输出:time2为14:21:00 类型为datetime

注意:3、4、5方法不能对dataframe中的整列进行操作

6.如果想对dataFrame列表中的整列进行操作可以使用Pandas-Series中关于Datetime的属性

Series.dt.date     取出dataFrame列表中整列datetime数据的年月日
Series.dt.time     取出dataFrame列表中整列datetime数据的时分秒
Series.dt.year     取出dataFrame列表中整列datetime数据的年
Series.dt.month    取出dataFrame列表中整列datetime数据的月
Series.dt.day      取出dataFrame列表中整列datetime数据的日
Series.dt.hour     取出dataFrame列表中整列datetime数据的时
Series.dt.minute   取出dataFrame列表中整列datetime数据的分
Series.dt.second   取出dataFrame列表中整列datetime数据的秒

其他Series.dt. 方法见网址:Pandas-Series中关于Datetime的属性。

7.如果当datetime类型数据做完一些算数运算后想与另一个数值进行比较例如15分钟等:可以使用timedelta()函数进行比较

例如:(time4-time3) > timedelta(minutes=15) 其中time4与time3为datetime类型数据

8.获取某日期是星期几使用Pandas.Series.dt.dayofweek方法来实现

例如:
time.dayofweekgrouped_data.svrCtime.iloc[0].dayofweek 其中返回值星期一=0 ~ 星期日=6

具体可查看Pandas.Series.dt.dayofweek相关命令