欢迎关注”生信修炼手册”!
pandas中提供了以下4种类型的日期和时间操作方法
其中,Date Time用于表示某个具体的时间点,Time spans用于生成时间间隔相同的时间序列;Time deltas表示时间间隔,Date offsets则表示日期间隔,这二者的作用都是用于时间运算,通过时间点+时间间隔的方式,得到新的时间点。
1. Date times
Date times类似内置模块datetime, 提供了带时区的日期时间,也称为为时间戳。单个时间戳可以通过Timestamp函数直接生成,用法如下
>>> pd.Timestamp('2020-07-01')
Timestamp('2020-07-01 00:00:00')
>>> pd.Timestamp(2020, 7, 1)
Timestamp('2020-07-01 00:00:00')
对于多个时间戳,可以通过to_datetime和date_range方法产生,用法如下
>>> import datetime
>>> pd.to_datetime(['2020-07-01', '2020-07-02', '2020-07-03'])
DatetimeIndex(['2020-07-01', '2020-07-02', '2020-07-03'], dtype='datetime64[ns]', freq=None)
>>> pd.date_range('2018-07-01', periods=3, freq='D')
DatetimeIndex(['2018-07-01', '2018-07-02', '2018-07-03'], dtype='datetime64[ns]', freq='D')
to_datetime函数将列表中的元素转换为DatetimeIndex对象,而date_range函数提供了以起始时间为原点,产生等量偏移的时间序列的方法,其中periods参数指定生成的时间序列的长度,freq参数指定偏移的时间量,该参数有非常多种取值,部分示例如下
# 按天
>>> pd.date_range('2018-01-01', periods=3, freq='D')
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03'], dtype='datetime64[ns]', freq='D')
# 按一周,即7天
>>> pd.date_range('2018-01-01', periods=3, freq='W')
DatetimeIndex(['2018-01-07', '2018-01-14', '2018-01-21'], dtype='datetime64[ns]', freq='W-SUN')
# 按小时
>>> pd.date_range('2018-01-01', periods=3, freq='H')
DatetimeIndex(['2018-01-01 00:00:00', '2018-01-01 01:00:00',
'2018-01-01 02:00:00'],
dtype='datetime64[ns]', freq='H')
完整的参数列表请查阅官方的API文档。
2. Time spans