前言
特征工程中经常性遇到字符串形式的日期数据,通常我们需要将其转换成计算机能够理解的datetime
对象,好处在于可以实现日期早晚的比较(例如要筛选出2019-01-02
到2019-03-04
内的数据),日期的加减法等系列操作。python
实现该操作的模块是datetime
,同时数据分析处理工具pandas
也提供了相应的时间格式处理方法to_datetime()
,本文从实用性角度出发,简要讲解这两种时间格式处理方式,并以一个具体的例子实际演示如何使用。
注:本文关心的是对于给定的字符串类型时间数据,如何快速进行读取实例化,因此不会大篇幅地去详细介绍模块的各个功能。
datetime
由于datetime
包含了众多对时间数据的处理、初始化操作,一一学习并没有特别大的效益,且很容易忘记,因此,适合在必要的时候查询使用。这里提供一篇对datetime
使用讲解十分详细的文章:Python datetime模块详解、示例。
作者从
datetime
模块下所有的类进行了详细的介绍和使用,并附上了日期格式化符号,可以在需要的时候进行查询。
datetime处理字符串时间数据
主要用到了datetime.datetime.strptime()
,能够根据指定的日期格式符号,从字符串中抽取得到datetime
实例。例如:
from datetime import datetime
datetime.strptime('2019-01-03','%Y-%m-%d') # datetime.datetime(2019, 1, 3, 0, 0)
%Y(四位年份),%m(月份),%d(月内中的一天)
是日期的格式化符号,更多的符号含义参考上面给的文章,会自动检验日期的合法性,例如2月不可能有30号。
转换成datetime
实例后,就可以做很多日期的骚操作了,例如:
- 比较两个日期的早晚
from datetime import datetime a = datetime.strptime('2019-02-20','%Y-%m-%d'