1. 程式人生 > 其它 >對於處理datetime資料型別的一些常用方法:

對於處理datetime資料型別的一些常用方法:

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.year/month/day/hour/minute/second可以分別取出時間的年、月、日、小時、分鐘、秒數

例如:
time.year

輸出:2022
time.month 輸出:3
time.day 輸出:23
time.hour 輸出:14
time.minute 輸出:21
time.second 輸出:45

3.time.strftime(format[, t]) 函式用於格式化時間,返回以可讀字串表示的當地時間,格式由引數 format 決定。

引數

  1. format -- 格式字串。
  2. 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)
進行轉換。

引數:

  1. date
    ○ 必需。
    ○ 要解析的字串(例如:由 strftime() 返回的)。
  2. 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.dayofweekgrouped_data.svrCtime.iloc[0].dayofweek
其中返回值星期一=0 ~ 星期日=6

具體可檢視Pandas.Series.dt.dayofweek相關命令