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