pandas的時間日期高效操作

2021-10-04 23:08:14 字數 1473 閱讀 9994

29、pandas的時間日期高效操作

探索資料之美

0.395

2018.01.02 11:27:56

字數 656

閱讀 8,288

在前面的文章中,我們總結了一下關於時間日期的簡單計算,但是我們發現很多功能都是datetime庫提供的,那麼pandas有沒有提供跟日期時間有關的函式呢?

自然是有的就是.dt,跟.str一樣,後面可以加多個函式進行操作。

比如現在有一組資料:

源資料由於日期列都是datetime64格式的,當匯出到excel或者別的地方的時候就會出現格式不是我們想要的:

匯出之後的日期格式

這種在匯出後還要再次進行格式的調整,將會變得很麻煩。

所以我們要看一下有沒有其它的方式匯出之後就直接是標準的日期格式的。

一、日期格式設定:dt.strftme()

dt.strftme()

需要注意的是在經過.dt.strftime()處理後的資料就不再是datetime型別了,就算匯出到excel也是不能直接被識別為日期的,所以處理的時候要慎重。

當然,還可以處理成其它的格式:

小寫的y,年份就只有兩位

. 不要中間的『-』

中間用斜線

將年份放後面

只顯示月份和天數

還有設定格式更簡潔的方式:

dt.date只提取日期部分

只要記住大寫y和小寫y區別,其它的就都比較簡單了。dt.strftime()與datetime庫里的格式設定不一樣,這一點要注意區別。

二、 提取時間日期中的 部分資訊:

dt.year能直接提取出年份,而且是整數型:

dt.year能直接提取出年份

其它資訊和年份差不多:月份日

小時時間

季度還可以返回星期幾:(星期一是0,星期天是6,跟切片的時候很相似。)

返回星期時間

返回週數是df.week()。

這就聯想到前面的文章提到的timedelta型別提取日期,那這個dt能不能用在timedelta型別的資料上呢?

timedelta函式

使用.dt.days去掉days

由上圖可知以這樣的一直方式比匿名函式更加的方便,這裡的.days很類似datetime庫裡面的.days。相當於用.dt.days代替了之前的map(lambda x:x.days)。

按照這個邏輯,.dt.total_seconds()也是可以使用的:

.dt.total_seconds()

三、計算天數相關的函式

計算是一年當中的第幾天:

計算是一年當中的第幾天

同理計算一年當中的第幾周(.dt.weekofyear):

計算一年當中的第幾周

除了上面這些,還有.dt後面還可以接很多函式,實在太多,就不一一介紹了。

需要注意的是用split出來後的是obj格式,應該先使用datetime.strptime轉為時間格式之後才能進行dt.strftime處理。

delphi 時間日期操作

delphi 時間日期操作 用於時間操作的函式 date函式 定義 date tdatetime 作用 返回當前的日期 範例 currentdate date dayofweek函式 定義 function dayofweek date tdatetime integer 作用 得到指定日期的星期值...

Oracle時間日期操作

oracle時間日期操作 sysdate 5 24 60 60 在系統時間基礎上延遲5秒 sysdate 5 24 60 在系統時間基礎上延遲5分鐘 sysdate 5 24 在系統時間基礎上延遲5小時 sysdate 5 在系統時間基礎上延遲5天 add months sysdate,5 在系統時...

PHP時間日期操作

1 date default timezone set prc 預設時區 2 當前的時間增加5天 3 date1 2014 11 11 4echo date y m d strtotime date1 5 day 輸出結果 2014 11 16 5 相應地,要增加月,年,將day改成month或ye...