新钛雲服已累計為您分享654篇技術干貨
所有數據在開始時都會自動分配一個“DOB”(出生日期)。因此,在某些時候處理數據時不可避免地會遇到日期和時間數據。本教程將帶您了解 Python 中的 datetime 模塊以及使用一些外圍庫,如pandas 和 pytz。
在 Python 中,任何與日期和時間有關的事情都由 datetime 模塊處理,它將模塊進一步分為 5 個不同的類。類只是與對象相對應的數據類型。下圖總結了 Python 中的 5 個日期時間類以及常用的屬性和示例。
3個有用的片段
1、將字符串轉換為日期時間格式 ,也許是使用datetime 最常見的情況。
由於日期和時間的字母數字性質,將類似的日期和時間解析為 Python 通常會被解釋為字符串。在本節中,我們將介紹如何將字符串列表解析為日期時間格式,以及如何將日期和時間數據拆分和組合到數據框中的各個列中。
片段 1 的打印輸出
但是,如果日期時間以不尋常或模稜兩可的方式格式化怎麼辦?一個常見的問題是美國和歐洲的日期時間書寫方式之間的區別。在美式格式中,月份在前,而在歐洲樣式中,日期在前。
默認情況下,pandas 中的 to_datetime 通過將前一個少於 12 位 (<12) 的數字解析為月份來將對象轉換為日期時間。例如,2/11/2021 將被解析為 2021-02-11,但 13/11/2021 將被解析為 2021-11-13。但是,有這個格式參數允許您以其他方式定義格式。
或者, strftime() 方法有助於在返回字符串之前格式化日期時間。在以下示例中,原始日期時間之間的破折號 (-) 替換為反斜槓 (/),數字月份 (02) 替換為縮寫的英語術語 (Feb)。
由於有多種方法可以解釋日期(日、月、年)和時間(時、分、秒),因此了解不同的格式代碼至關重要。下表是常用格式代碼的備忘單。
2、使用時區
沒有時區信息的 datetime 對象被稱為“naive”,有時區信息的對象(通常在末尾帶有 +HH:MM 對應 GMT)被認為是“aware”。pytz 可能是 Python 中最全面的庫之一,它簡化了時區計算的任務。
以下代碼段將向您展示如何在“naive”和“aware” datetime 對象之間進行轉換,並可以使用不同的時區。代碼的最後一部分還演示了如何將給定的日期時間對象轉換為本地時區。此示例顯示了日本和德國的時區代碼,對於其他地區,您可以在此處參考。
片段2的輸出
3、使用interval比較兩個datetime(s)
有時我們必須有條件地比較兩個日期時間。想象一下,您有兩個數據框,第一個數據框僅包含一列日期時間,第二個數據框包含兩列表示間隔和其余列中的其他信息。您的目標是從第一個數據幀中找到匹配的日期時間,如果它落在第二個數據幀的間隔內,如果是,則復制其他列。
實現此目的的一種方法是使用 pd.Interval 壓縮兩個日期時間的間隔,然後將它們分配為數據框的索引,稍後可用於有條件地比較和映射日期時間。如果滿足時間條件,這可以通過使用 for 循環復制感興趣的列來完成。
原文:https://towardsdatascience.com/how-to-work-with-datetime-in-python-26d4092dc484
了解新钛雲服
新钛雲服榮膺第四屆FMCG零售消費品行業CIO年會「年度數字化服務最值得信賴品牌獎」
新钛雲服三周歲,公司月營收超600萬元,定下百年新钛的發展目標
當IPFS遇見雲服務|新钛雲服與冰河分布式實驗室達成戰略協議
新钛雲服正式獲批工信部ISP/IDC(含互聯網資源協作)牌照
深耕專業,矗立鳌頭,新钛雲服獲千萬Pre-A輪融資
新钛雲服,打造最專業的Cloud MSP+,做企業業務和雲之間的橋梁
新钛雲服一周年,完成兩輪融資,服務五十多家客戶
上海某倉儲物流電子商務公司混合雲解決方案
往期技術干貨
Kubernetes擴容到7,500節點的歷程
低代碼開發,全民開發,淘汰職業程序員!
國內主流公有雲VPC使用對比及總結
萬字長文:雲架構設計原則|附PDF下載
剛剛,OpenStack 第 19 個版本來了,附28項特性詳細解讀!
Ceph OSD故障排除|萬字經驗總結
七個用於Docker和Kubernetes防護的安全工具
運維人的終身成長,從清單管理開始|萬字長文!
OpenStack與ZStack深度對比:架構、部署、計算存儲與網絡、運維監控等
什麼是雲原生?
IT混合雲戰略:是什麼、為什麼,如何構建?
點分享
戳在看