python时间序列分析按月_利用 Python 进行时间序列分析
1. 時(shí)間序列分析概述
時(shí)間序列分析在金融、氣象、交通、宏觀經(jīng)濟(jì)等諸多領(lǐng)域的應(yīng)用可以說是非常的廣泛。簡單點(diǎn)說,時(shí)間序列就是在各個時(shí)間點(diǎn)上形成的數(shù)值序列,而分析的過程就是通過這些數(shù)值序列去研究其自身的變化規(guī)律。
時(shí)間序列通常使用 pandas 中的 series 結(jié)構(gòu)(一個時(shí)間點(diǎn)對應(yīng)一個數(shù)值數(shù)據(jù))或者 dataframe 結(jié)構(gòu)(一個時(shí)間點(diǎn)對應(yīng)多個數(shù)值數(shù)據(jù))來表示,和 series 和 dataframe 結(jié)構(gòu)本質(zhì)上是一樣的,唯一一個重要的不同就是,他的索引數(shù)據(jù)是時(shí)間類型的。
時(shí)間類型的數(shù)據(jù)作為一種特殊的數(shù)據(jù)形式,和一般的數(shù)值類型或者字符串類型相比,要多了不少的講究。因此首先我們專門來介紹如何在 python 中對日期和時(shí)間的進(jìn)行表示,這也是后續(xù)時(shí)間序列分析的基礎(chǔ)。
我們先從 python 標(biāo)準(zhǔn)庫與第三方庫入手,介紹其中的日期、時(shí)間、時(shí)間增量和時(shí)間跨度的表示工具。當(dāng)然了,說實(shí)話其實(shí) pandas 中提供的時(shí)間序列工具更適合用來進(jìn)行相關(guān)問題的處理,但是我想從標(biāo)準(zhǔn)庫入手,可以幫助我們?nèi)ジ闱宄麄€問題的來龍去脈,對我們更好的理解問題和使用工具將大有裨益。
2. 原生工具:datetime 和 dateutil
首先,我們第一個要介紹的就是 python 中的原生工具:datetime 與 dateutil。
datetime 是 python 中的標(biāo)準(zhǔn)庫,最基本的日期和時(shí)間功能都包含在其中了。而 dateutil 是一個強(qiáng)大的第三方庫,如果將二者搭配進(jìn)行使用,可以收到奇效,方便快捷的解決諸多問題。
2.1 日期的創(chuàng)建
首先我們來利用 datetime 類型來創(chuàng)建一個日期。
代碼片段:
from datetime import datetime
date = datetime(year=2019, month=5, day=2)
print(date)
運(yùn)行結(jié)果:
2019-05-02 00:00:00
這樣我們就成功的生成了第一個日期類型的對象了。
2.2 文本日期的自動解析
這里有同學(xué)一定會問了,我們用來進(jìn)行 datetime 對象初始化的參數(shù)一般都是從數(shù)據(jù)源(數(shù)據(jù)表格、網(wǎng)站)上獲取的文本形式的日期類數(shù)據(jù),一般情況下會有很多種不同的寫法,比如,2019 年 5 月 2 日,常見的就可以寫成:2019-5-2,5/2/2019,等等,種類非常繁多,那我們?nèi)绾螌⑺麄冝D(zhuǎn)換成datetime初始化所需要的年月日標(biāo)準(zhǔn)形式呢?
不用著急,其實(shí)這個工作都不需要我們自己動手去做,我們剛剛提到過的第三方庫 dateutil 就能夠幫我們實(shí)現(xiàn)這一切,他能夠?qū)^大多數(shù)字符串格式的日期進(jìn)行正確的解析,從而幫助我們正確的生成 datetime 數(shù)據(jù)類型,我們就試試上面列舉的:2019-5-2,5/2/2019,2019/5/2 這幾種日期表達(dá)方式的解析。
代碼片段:
from datetime import datetime
from dateutil import parser
sdate1 = '2019-5-2'
sdate2 = '5/2/2019'
sdate3 = '2019/5/2'
date1 = parser.parse(sdate1)
date2 = parser.parse(sdate2)
date3 = parser.parse(sdate3)
print(date1)
print(date2)
print(date3)
運(yùn)行結(jié)果:
2019-05-02 00:00:00
2019-05-02 00:00:00
2019-05-02 00:00:00
從程序運(yùn)行的結(jié)果來看,我們利用 dateutil 工具對幾種常見的日期類型字符串做了轉(zhuǎn)換,得到了正確的結(jié)果,這個會在許多應(yīng)用場景中提高我們的工作效率。
2.3 提取日期中的要素信息
首先我們來看看一個經(jīng)常用到的案例:獲取當(dāng)前日期時(shí)間的用法。
代碼片段:
from datetime import datetime
from dateutil import parser
date = datetime.now()
print(date)
運(yùn)行結(jié)果:
2019-05-02 12:23:42.571834
這時(shí),我們再來思考一下,這里程序最終輸出的格式是 2019-05-02 12:23:42.571834,存在著兩方面的問題:
第一是:輸出的是千篇一律的固定統(tǒng)一格式;
第二是:都到了秒以后的微秒級的時(shí)間精度了。
總結(jié)
以上是生活随笔為你收集整理的python时间序列分析按月_利用 Python 进行时间序列分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac下使用nginx反向代理服务器解决
- 下一篇: 项目管理-POC