datetime數據類型常用方法:
在項目中從數據庫中取出數據后通常需要先繪制圖像進行數據的觀察,此過程中使用到的方法:
1.時間數據類似於 2022-03-23 14:21:45 可以先轉換為datetime類型的數據:可以使用pd.to_datetime()
方法將時間轉換為datetime類型
例如:
time = pd.to_datetime(''2022-03-23 14:21:45'')
輸出結果:Timestamp(''2022-03-23 14:21:45'')
轉換成功
2. time.date()/time()
可以分別取出時間的日期/時間信息,time.year/month/day/hour/minute/second
可以分別取出時間的年、月、日、小時、分鍾、秒數
例如:
time.date()
輸出:2022-03-23
time.time()
輸出:14:21:45
time.year
輸出:2022
time.month
輸出:3
time.day
輸出:23
time.hour
輸出:14
time.minute
輸出:21
time.second
輸出:45
3.time.strftime(format[, t])
函數用於格式化時間,返回以可讀字符串表示的當地時間,格式由參數 format 決定。
參數
- format -- 格式字符串。
- t -- 可選的參數t是一個struct_time對象。
說明:
python中時間日期格式化符號如下:
%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
%I 12小時制小時數(01-12)
%M 分鍾數(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(00-53)星期一為星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
%% %號本身
例如:time1 = time.strftime("%Y-%m-%d %H:%M:%S")
輸出:time1為'2022-03-23 14:21:45'
類型為str
可以通過改變括號內參數的樣式來選取自己想要的結果:
例如:time1 = time.strftime("%Y-%m-%d")
輸出:time1為'2022-03-23'
類型為str
例如:time1 = time.strftime("%H:%M")
輸出:time1為'14:21'
類型為str
4.如果要將3.中轉變為str類型的時間再轉變回datetime那么可以使用datetime.strptime(date, format)
進行轉換。
參數:
- date
○ 必需。
○ 要解析的字符串(例如:由 strftime() 返回的)。 - format
○ 必須。
○ 規定日期中要使用的格式與strftime一樣
例如time1 = '2022-03-23 14:21:45'
:
time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M:%S")
輸出:time2為2022-03-23 14:21:45
類型為datetime
5.可以在4.的基礎上加入date()和time()方法取出其中的各個部分
假設:time1 = '2022-03-23 14:21'
:
可以在其中加入date()
方法取出其中的年、月、日
例如:time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M").date()
輸出:time2為2022-03-23
類型為datetime
可以在其中加入time()
方法取出其中的小時、分鍾、秒
例如:time2 = datetime.strptime(time1,"%Y-%m-%d %H:%M:%S").time()
輸出:time2為14:21:00
類型為datetime
注意:3、4、5方法不能對dataframe中的整列進行操作
6.如果想對dataFrame列表中的整列進行操作可以使用Pandas-Series中關於Datetime的屬性
Series.dt.date 取出dataFrame列表中整列datetime數據的年月日
Series.dt.time 取出dataFrame列表中整列datetime數據的時分秒
Series.dt.year 取出dataFrame列表中整列datetime數據的年
Series.dt.month 取出dataFrame列表中整列datetime數據的月
Series.dt.day 取出dataFrame列表中整列datetime數據的日
Series.dt.hour 取出dataFrame列表中整列datetime數據的時
Series.dt.minute 取出dataFrame列表中整列datetime數據的分
Series.dt.second 取出dataFrame列表中整列datetime數據的秒
其他Series.dt. 方法見網址:Pandas-Series中關於Datetime的屬性。
7.如果當datetime類型數據做完一些算數運算后想與另一個數值進行比較例如15分鍾等:可以使用timedelta()
函數進行比較
例如:(time4-time3) > timedelta(minutes=15)
其中time4與time3為datetime類型數據
8.獲取某日期是星期幾使用Pandas.Series.dt.dayofweek
方法來實現
例如:
time.dayofweek
、 grouped_data.svrCtime.iloc[0].dayofweek
其中返回值星期一=0 ~ 星期日=6