程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

pandas的日期時間間隔運算(pd.to_datetime和pd.to_numeric)

編輯:Python

轉載自:https://www.jianshu.com/p/26c48361ed24

有時,我們需要對日期進行簡單的運算,這就要使用到了日期運算和轉換的函數。

例如:

源數據

其中使用pd.to_datetime可以統一將time.strftime("%Y/%m/%d")生成的日期轉換成日期格式的數據。time.strftime("%Y/%m/%d")生成的日期為字符串格式。

一、計算兩組時間之間的間隔

在圖中有兩列的日期,我們可以直接求出它們之間的間隔,在計算之前要先確定一下日期列的數據是否是日期格式:

數據格式

確定了都是日期格式就可以進行日期的計算:

日期的計算

 

計算後的日期天數

由上圖可知,計算後的日期天數卻有著一個days單位,這個 因為這個是屬於timedelta64[ns]的數據屬性:

計算後的數據屬性

因此我們可以將其轉換成整數,以方便我們後續的使用:

將數據類型轉換成整數型

使用pd.to_numeric可以將其它形式的數據轉換成整數型的數據。

我們在看看現在數據的類型:

轉換後的數據類型

當然了,也可以使用函數來進行轉換:

用匿名函數轉換成整數型

使用匿名函數的時候對每個元素使用一次.days就能將數據轉換成整數。

timedelta的數據類型相互直接不能轉換成年、周、月等,只能轉換為天數、秒數、微妙數。而且在返回秒數和微笑數時,如果是負數時容易出錯(例如:-3秒會被處理為-1天86397秒):

源數據

在兩個日期直接進行計算之後:

計算之後的數據

所以在日期計算之後為負數的時候就會出錯,因此在轉換間隔秒數的時候最後使用total_seconds()函數(記得函數後面的括號):

使用total_seconds()函數

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved