我们在python对数据进行操作时,经常会选取某一时间段的数据进行分析。常用的两种用来选取某一时间段数据的函数:datetime()和pd.to_datetime()。
1、 datetime()
datetime是Python处理日期和时间的标准库。
(1)获取当前的时间和日期。
格式:datetime.now()
我们先看如何获取当前日期和时间:
>>> from datetime import datetime
>>> now = datetime.now() # 获取当前datetime
>>> print(now)
2018-05-22 19:36:21.622487
>>> print(type(now))
<class 'datetime.datetime'>
datetime.now()返回当前日期和时间,其类型是datetime。
(2)获取指定的时间和日期。
格式:datetime(%Y,%m,%d,%H,%M,%S)
>>> from datetime import datetime
>>> dt = datetime(2018, 5, 22, 18, 20) # 用指定日期时间创建datetime
>>> print(dt)
2018-05-22 18:20:00
datetime共有6个参数,分别代表的是年月日时分秒。其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零。
(3)将Str和Unicode转化为时间格式
格式:datetime.strptime( str , format )
在很多情况下,我们的原始数据中的时间和日期并不是时间类型的,而是一个日期和时间的格式化字符串,例如excel中可能是Unicode,csv中可能是Str。因此我们在进行时间切片之前首先要将非时间类型的时间数据转换为时间类型。
>>> from datetime import datetime
>>> cday = datetime.strptime('2018-5-22 19:00:59', '%Y-%m-%d %H:%M:%S')
>>> print(cday)
2018-05-22 19:00:59
注意转换后的datetime是没有时区信息的。
PS:注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。如果仅导入import datetime,则必须引用全名datetime.datetime。
2、pd.to_datetime()
pandas中的to_datetime( )有和datetime( )类似的功能。
(1)获取指定的时间和日期。
格式:pd.to_datetime(%Y%m%d %H:%M:%S)
>>> import pandas as pd
>>> pd.to_datetime('2018/5/22 19:22:22',format='%Y%m%d %H:%M:%S') # 用指定日期时间创建datetime
Timestamp('2018-05-22 19:22:22')
(2)将Str和Unicode转化为时间格式
>>> import pandas as pd
>>> pd.to_datetime(u'2018/5/22 19:00:59',format= '%Y-%m-%d')
Timestamp('2018-05-22 19:00:59')
参考资料:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.to_datetime.html