Pandas日期函數(shù)總結(jié)

背景

有時喻括,我們需要對日期和時間進行簡單的運算啊胶。

例如:

img

一: 求日期差距

上面這組數(shù)據(jù)中,有兩組日期忽冻,我們可以直接求出他們之間的間隔。

img

簡單的相減就能得出兩個日期之間的日期差此疹。

但是很奇怪僧诚,為什么得出的結(jié)果里面有days這個單位呢?得出的數(shù)據(jù)是什么屬性呢秀菱?

img

原來得出的并不是整數(shù)型也不是個字符串振诬,而是datetime庫里常用的timedelta型。

怎樣把這些數(shù)據(jù)轉(zhuǎn)換成整數(shù)衍菱,方便我們后續(xù)使用呢赶么?

img

對每一個元素使用一次.days就能將數(shù)據(jù)轉(zhuǎn)換為整數(shù)。

timedelta型數(shù)據(jù)脊串,不能直接轉(zhuǎn)換成年辫呻、周、月等琼锋,只能轉(zhuǎn)換為天數(shù)放闺、秒數(shù)和微秒數(shù)。而且在返回秒數(shù)和微秒數(shù)時缕坎,如果是負(fù)數(shù)時怖侦,容易出錯(例如:-3秒會被處理為-1天86397秒)

img
img

所以在轉(zhuǎn)換間隔秒數(shù)時最好使用total_seconds()

img

二 計算幾天之后的日期

如果我想知道,n天前或者n天后的日期谜叹,可以直接加減么匾寝?

img

很抱歉,不可以荷腊。艳悔。。女仰。猜年。抡锈。

這個功能要使用datetime庫里面的timedelta函數(shù)。

img

減法也可以:

img

不僅僅是加減天數(shù)乔外,也可以加減小時:

img

加減星期數(shù):

img

除了加減天數(shù)床三、小時數(shù)、星期數(shù)袁稽,還可以加減分鐘minutes, 秒seconds,毫秒和微秒勿璃。不能直接加減月數(shù),年數(shù)推汽。畢竟每年和每個月的天數(shù)是不一樣的。

三歧沪、整列都去計算和另一個日期的差距

如果需要對所有整列都減去同一個日期歹撒,我們需要定義一個日期,讓系統(tǒng)識別得出來诊胞。

img

這樣日期和日期之間就能運算了:

img

總的來說:pandas里面的日期運算并不是特別方便暖夭,需要借助datetime庫,而且timedelta數(shù)據(jù)類型轉(zhuǎn)換成整數(shù)時并不容易撵孤。

四迈着、 引入pandas中的dt概念

自然是有的就是.dt。跟.str一樣邪码,后面可以加多個函數(shù)進行操作裕菠。

這里的dt自然代表的是datetime(我猜)。

比如現(xiàn)在有一組數(shù)據(jù):

img

由于日期這一列是datetime64格式闭专,當(dāng)導(dǎo)出到excel或者別的地方的時候奴潘,就會出現(xiàn)格式不是我們想要的。

img

這種在導(dǎo)出后還要再次調(diào)試格式影钉,讓我的懶病都發(fā)作了画髓。

五、 日期設(shè)置格式:dt.strftime()

img

注意:經(jīng)過.dt.strftime()處理后的數(shù)據(jù)就不再是datetime類型平委,就算導(dǎo)出到excel也是不能直接被識別為日期的奈虾,所以處理時要慎重。

當(dāng)然廉赔,還可以處理成其它格式:

img

還有設(shè)置格式更簡潔的方式:

img

dt.date只提取日期部分

只要記住大寫Y和小寫y的區(qū)別肉微,其它的就可以隨心所欲了。dt.strftime()與Datetime庫里面的格式設(shè)置是不一樣的昂勉,請注意區(qū)別浪册。

六、 提取時間日期中的 部分信息:

dt.year能直接提取出年份岗照,而且是整數(shù)型村象。

img

其它信息和年份差不多:

img

月份

img

img

小時

img

時間

img

季度

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

img

七躁劣、 timedelta上面使用dt函數(shù)

這就聯(lián)想到上一篇文章提到的timedelta類型提取日期,那這個dt能不能用在timedelta類型的數(shù)據(jù)上呢库菲?

img
img

實現(xiàn)了账忘,而且更方便了,這里的.days很類似datetime庫里面的.days熙宇。相當(dāng)于用.dt.days代替了之前的map(lambda x:x.days)鳖擒。

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

img

的確可行蒋荚。

八、計算天數(shù)相關(guān):

這個可以計算日期位于某一年的第幾天(正常計數(shù)):

img

下面這個可以計算這些日期位于一年第幾周:

img

除了上面這些馆蠕,還有.dt后面還可以接很多函數(shù)期升,實在太多,就不一一介紹了互躬。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末播赁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吼渡,更是在濱河造成了極大的恐慌容为,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诞吱,死亡現(xiàn)場離奇詭異舟奠,居然都是意外死亡,警方通過查閱死者的電腦和手機房维,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門沼瘫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咙俩,你說我怎么就攤上這事耿戚。” “怎么了阿趁?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵膜蛔,是天一觀的道長。 經(jīng)常有香客問我脖阵,道長皂股,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任命黔,我火速辦了婚禮呜呐,結(jié)果婚禮上就斤,老公的妹妹穿的比我還像新娘。我一直安慰自己蘑辑,他們只是感情好洋机,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著洋魂,像睡著了一般绷旗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上副砍,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天衔肢,我揣著相機與錄音,去河邊找鬼址晕。 笑死膀懈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谨垃。 我是一名探鬼主播敞峭,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼敦捧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咳榜?” 一聲冷哼從身側(cè)響起牢撼,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤匙隔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后熏版,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纷责,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年撼短,在試婚紗的時候發(fā)現(xiàn)自己被綠了再膳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡曲横,死狀恐怖喂柒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禾嫉,我是刑警寧澤灾杰,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站熙参,受9級特大地震影響艳吠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜孽椰,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一昭娩、第九天 我趴在偏房一處隱蔽的房頂上張望凛篙。 院中可真熱鬧,春花似錦题禀、人聲如沸鞋诗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽削彬。三九已至,卻和暖如春秀仲,著一層夾襖步出監(jiān)牢的瞬間融痛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工神僵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雁刷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓保礼,卻偏偏與公主長得像沛励,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炮障,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容