Pandas —— Timestamp、Period、Timedelta、datetime时间对象

一、时间datetime

In [10]: pd.datetime(2018,4,1)
Out[10]: datetime.datetime(2018, 4, 1, 0, 0)

二、时间戳Timestamp

表示时间轴上的一个时刻。它提供了方便的时区转换功能。

调用Timestamp()创建任意时间点:

In [98]: pd.Timestamp('2018-08-1 08:02:35')
Out[98]: Timestamp('2018-08-01 08:02:35')

调用.tz_localize()转换为指定时区的当前时间

In [99]: pd.Timestamp('2018-08-1 08:02:35').tz_localize("Asia/Shanghai")
Out[99]: Timestamp('2018-08-01 08:02:35+0800', tz='Asia/Shanghai')

三、时间段Period

Period表示一个标准的时间段。例如某年、某月、某日、某小时等。时间的长短由freq决定。

调用Period()创建任意时间段:

In [100]: pd.Period('2018-08-1 08:02:35',freq='M')
Out[100]: Period('2018-08', 'M')

四、时间间隔Timedetla

通过调用pd.Timedelta()之间创建时间间隔Timedelta对象:

In [102]: pd.Timedelta(weeks=2,days=10,hours=12,minutes=2.4,seconds=10.3)
Out[102]: Timedelta('24 days 12:02:34.300000')

五、时间对象之间的转换

时间戳Timestamp转换为时间段Period

In [104]: pd.Timestamp('2018-08-1 08:02:35').to_period(freq='S')
Out[104]: Period('2018-08-01 08:02:35', 'S')

时间段Period转换为时间戳Timestamp

In [105]: pd.Period('2018-08-1 08:02:35',freq='M').to_timestamp()
Out[105]: Timestamp('2018-08-01 00:00:00')

将两个时间戳Timestamp相减得到时间间隔Timedelta对象

In [106]: pd.Timestamp('2018-08-1 08:02:35')-pd.Timestamp('2018-08-1 07:02:35')
Out[106]: Timedelta('0 days 01:00:00')

六、时间解析

strptime(str)将字符串转换为时间(需要指定格式)

In [11]: value='2018,3,1'
In [12]: pd.strptime(value,'%Y-%m-%d') #将字符串转换为时间
Out[12]: datetime.datetime(2018, 3, 1, 0, 0)

第三方库dateutil.parser的时间解析函数(此时不需要指定格式)

In [14]: from dateutil.parser import parse
In [15]: parse(value)
Out[15]: datetime.datetime(2018, 3, 1, 0, 0)

七、格式定义

格式 说明
%Y 4位数的年
%y 2位数的年
%m 2位数的月[01,12]
%d 2位数的日[01,31]
%H 时(24小时制)[00,23]
%l 时(12小时制)[01,12]
%M 2位数的分[00,59]
%S 秒[00,61]有闰秒的存在
%w 用整数表示的星期几[0(星期天),6]
%F %Y-%m-%d简写形式例如,2017-06-27
%D %m/%d/%y简写形式

猜你喜欢

转载自blog.csdn.net/starter_____/article/details/81432353