Pandas處理時(shí)間序列數(shù)據(jù)操作詳解
前言
一般從數(shù)據(jù)庫(kù)或者是從日志文件讀出的數(shù)據(jù)均帶有時(shí)間序列,做時(shí)序數(shù)據(jù)處理或者實(shí)時(shí)分析都需要對(duì)其時(shí)間序列進(jìn)行歸類歸檔。而Pandas是處理這些數(shù)據(jù)很好用的工具包。此篇博客基于Jupyter之上進(jìn)行演示,本篇博客的愿景是希望我或者讀者通過(guò)閱讀這篇博客能夠?qū)W會(huì)方法并能實(shí)際運(yùn)用。希望讀者看完能夠提出問(wèn)題或者看法,博主會(huì)長(zhǎng)期維護(hù)博客做及時(shí)更新。純分享,希望大家喜歡。
一、獲取時(shí)間
python自帶datetime庫(kù),通過(guò)調(diào)用此庫(kù)可以獲取本地時(shí)間
from datetime import datetime datetime.now()
同時(shí)也可以獨(dú)立獲取年月日:
datetime.now().day datetime.now().year datetime.now().moth
isoweekday()獲取符合ISO標(biāo)準(zhǔn)的指定日期所在的星期數(shù):
datetime.now().isoweekday()
為星期二。
但也有weekeday()方法但是是從0開(kāi)始,也就是說(shuō)0也就是周一,需要加一轉(zhuǎn)為周數(shù):
datetime.now().weekday()+1
datetime可以將日期(date)和時(shí)間(time)分隔開(kāi):
datetime.now().date()
datetime.now().time()
也可以用timetuple()函數(shù)將整個(gè)時(shí)間拆分為結(jié)構(gòu)體:
datetime.now().timetuple()
要轉(zhuǎn)換為自定義熟悉的時(shí)間表達(dá)可以使用strftime()函數(shù),其輸出代碼格式有以下幾種:
datetime.now().strftime('%Y-%m-%d')
datetime.now().strftime('%m/%d/%Y %H:%M:%S')
二、時(shí)間索引
時(shí)間索引是根據(jù)數(shù)據(jù)的時(shí)間來(lái)處理時(shí)序數(shù)據(jù)進(jìn)行歸檔篩選的一種索引方式。
展示數(shù)據(jù):
首先查看類型是否為 datetime類型,是該類型再重新設(shè)定索引,否則需要先把索引時(shí)間列轉(zhuǎn)換為datetime類型再進(jìn)行設(shè)定。
df1.set_index('first_order_time')
若要查找2019年的數(shù)據(jù),只需要在 后面加上日期即可:
df1['2019']
想要獲取詳細(xì)的日期的數(shù)據(jù)只需要在[]里面輸入對(duì)應(yīng)的日期即可:
df1['2019-05-13']
獲取區(qū)間日期數(shù)據(jù):
df1['2019-05-01':'2019-05-13']
三、時(shí)間推移
如果時(shí)序數(shù)據(jù)提取出來(lái)時(shí)間并不符合對(duì)應(yīng)時(shí)間戳,則可以使用timedelta進(jìn)行推移時(shí)間:
timedelta類表示為時(shí)間差,可直接實(shí)例化也可以由兩個(gè)datetime進(jìn)行相減操作得到。
可表示的時(shí)間差依次為:
days,seconds,microseconds,minutes,hours,weeks
如我們要推移一天時(shí)間:
date = datetime(2019,5,10) date+timedelta(days = 1)
往后推移只需要減去對(duì)應(yīng)天數(shù)就好了。
比起timedelta,有date offset可以直接進(jìn)行時(shí)間推移,并不需要換算,效率比timedelta要快很多。
引入庫(kù):
from pandas.tseries.offsets import Day,Hour,Minute date+Day(1)
計(jì)算結(jié)果為timestamp:
到此這篇關(guān)于Pandas處理時(shí)間序列數(shù)據(jù)操作詳解的文章就介紹到這了,更多相關(guān)Pandas時(shí)間序列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- pandas時(shí)間序列之如何將int轉(zhuǎn)換成datetime格式
- pandas中的Timestamp只保留日期不顯示時(shí)間
- pandas實(shí)現(xiàn)datetime64與unix時(shí)間戳互轉(zhuǎn)
- pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn)
- Pandas中常用的七個(gè)時(shí)間戳處理函數(shù)使用總結(jié)
- Pandas?時(shí)間序列分析中的resample函數(shù)
- Python Pandas高級(jí)教程之時(shí)間處理
- pandas 時(shí)間偏移的實(shí)現(xiàn)
- Pandas數(shù)據(jù)分析固定時(shí)間點(diǎn)和時(shí)間差
相關(guān)文章
django中賬號(hào)密碼驗(yàn)證登陸功能的實(shí)現(xiàn)方法
這篇文章主要介紹了django中賬號(hào)密碼驗(yàn)證登陸功能的實(shí)現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07pytorch中torch.max和Tensor.view函數(shù)用法詳解
今天小編就為大家分享一篇pytorch中torch.max和Tensor.view函數(shù)用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python3中_from...import...與import?...之間的區(qū)別詳解(包/模塊)
Python編碼第一步是導(dǎo)入模塊,有時(shí)候用import?***有時(shí)候用from...import,下面這篇文章主要給大家介紹了關(guān)于python3中_from...import...與import?...之間區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-08-08淺談matplotlib中FigureCanvasXAgg的用法
這篇文章主要介紹了淺談matplotlib中FigureCanvasXAgg的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06用pushplus+python監(jiān)控亞馬遜到貨動(dòng)態(tài)推送微信
這篇文章主要介紹了用pushplus+python監(jiān)控亞馬遜到貨動(dòng)態(tài)推送微信的示例,幫助大家利用python搶購(gòu)商品,感興趣的朋友可以了解下2021-01-01python?yaml文件數(shù)據(jù)按原有的數(shù)據(jù)順序dump問(wèn)題小結(jié)
這篇文章主要介紹了python?yaml文件數(shù)據(jù)按原有的數(shù)據(jù)順序dump,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11Python3 入門(mén)教程 簡(jiǎn)單但比較不錯(cuò)
Python已經(jīng)是3.1版本了,與時(shí)俱進(jìn)更新教程.2.5或2.6請(qǐng)看上一篇文章。2009-11-11python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜數(shù)游戲,保存游戲記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06