Python时间数据类型

时间类型数据在生活中非常常见,经济、金融、物理等方面都会使用到,在观测数据过程中,对于时间序列数据常常使用的有三种:
时间戳 :具体的时刻
时间间隔 :由开始和结束的时间戳表示
固定的时间区间 :比如说2020年一整年
Python中包含了日期和时间数据的类型,也包括日历相关的功能,其中有datetime、time和calendar模块。这里主要梳理datetime的基本用法和字符串时间转换的相关知识点。

1 datetime基本知识点

1.1 存储精细度

datetime存储了日期,也存储到了细化到微秒的时间,具体可以看如下代码,在得出的结果中,从左到右分别是年、月、日、时、分、秒、微秒:

时间精细度

1.2 计算时间差

datetime的时间差可以通过两个datetime对象加减操作得到,得出的结果是timedelta类型,操作如下代码所示,通过两个datetime对象进行相减操作,得出时间间隔my_delta的结果,对应两个参数分别是days和seconds。
timedelta

1.3 加减求另一个时间

一个datetime对象可以和一个timedelta时间间隔相加减得到另一个datetime对象,这种加减可以是timedelta的整数倍,示例如下所示。
求另一个时间
有关datetime模块中数据类型包括以下:

类型描述
date使用公历存储日期(年、月、日)
time将时间存储为小时、分钟、秒、微妙
datetime存储日期和时间
timedelta存储时间间隔
tzinfo存储时区(北京是东八区),具体使用可以参考tzinfo的用法

2 日期与字符串的转换

2.1 时间类型转为字符串

datetime通过strftime方法将datetime类型进行特定格式的字符串转换,举例如下代码所示。
时间转字符
从上述代码可以看出,strftime是通过%方式进行特定时间字符串格式的设定,特定格式的的转换形式有以下几种。

类型描述
%Y四位格式的年份
%y两位格式的年份
%m两位格式的月份
%d两位格式的日期
%H小时,24小时制
%I小时,12小时制
%M分钟,两位格式
%S
%w星期日期,[0(周日),6]
%U一年总计星期数,周日为第一天,一年中第一个周日前的星期为第0周
%W一年总计星期数,周一为第一天,一年中第一个周一的星期为第0周
%z格式为+HHMM或-HHMM的UTC时区偏移,没有时区则为空
%F%Y-%m-%d的简写
%D%m / % d / %y的简写

2.2 字符串转为时间数据类型

字符串转换为日期的方式是比较多的,这里介绍三种方式
第一种: 使用datetime中的 strptime 方法,具体使用如代码所示
strptime
通过代码可以看出,使用datetime进行转换,在参数中需要对应写入字符串的时间格式才能进行转换,这样对于已知的格式可以说很方便,而每次进行格式编写确实带来了许多的不便,这时可以考虑第二种方法

第二种 :使用 parse 方法
parse方法来自与dateutil包,如果已经安装了pandas的包,这个包默认已经安装了。parse方法对于常见的可理解的字符串日期都可以自动转换成datetime类型。考虑到国际场合下,有的时间是日期在月份之前,比如2/12/2020为2020年12月2日,这种转换可以加入dayfirst参数进行备注,方便识别,具体举例如下。
parse
第三种 : pandas中面向日期数组的处理( to_datetime 方法)
在dataFrame中,轴索引和列都可以使用to_datetime方法将字符串数组进行转换,在进行转换的过程中也可以进行空缺值的识别,空缺值将使用NaT(Not a Time)表示,具体举例如下:
pandas

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值