11.1 日期和时间数据的类型及工具
Python标准库包含了日期和时间数据的类型,也包括日历相关的功能
datetime、time和calendar模块是开始处理时间数据的主要内容
1.datetime.datetime类型,或简写为datetime被广泛使用(见图11-1)
注:datetime既存储了日期,也存储了细化到微秒的时间
2.timedelta表示两个datetime对象的时间差(见图11-2)
3.加减时间操作
可以为一个datetime对象加上(或减去)一个timedelta或其整数倍来产生一个新的datetime对象(见图11-3)
附:datetime模块的数据类型(见表11-1)
11.1.1 字符串与datetime互相转换
1.使用str方法或传递一个指定的格式给strftime方法来对datetime对象和pandas的Timestamp对象进行格式化(见图11-4)
附:格式代码的完整列表(见表11-2)
2.使用datetime.srtptime和格式代码,将字符串转换日期(见图11-5)
补充:datetime.strptime是在已知格式的情况下转换日期的好方式,但每次都必须编写一个格式代码可能有点烦人,特别是对于通用日期格式
在这种情况下,可以使用第三方dateutil包的parser.parse方法(这个包在安装pandas时已经自动安装)(见图11-6)
传递dayfirst=True来表明日期出现在月份之前(见图11-7)
注:dateutil.parser是一个有用但并不完美的工具。值得注意的是,它会将一些字符串识别为你并不想要的日期——例如,'42’将被解析为2042年的当前日期
3.使用to_datetime方法可以转换很多不同的日期表示格式
pandas主要是面向处理日期数组的,无论是用作轴索引还是用作DataFrame中的列(见图11-8)
4.使用to_datetime方法处理那些被认为是缺失值的值(None、空字符串等)(见图11-9)
注:NaT(Not a time)是pandas中时间戳数据的是null值
附:datetime对象还拥有许多其他国家或语言系统的本地化格式选项。例如,德语或法语的月份名称会和英语系统有所不同(见表11-3)