Python+pandas處理時間、日期資料
阿新 • • 發佈:2019-02-18
我們在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')