摘要
時間序列(time series)數據是一種重要的結構化數據形式,應用于多個領域,包括金融學、經濟學、生態學、神經科學、物理學等。在多個時間點觀察或測量到的任何事物都可以形成一段時間序列。在進行時間序列問題分析時,通常需要將字符串和datetime類型相互轉換,本文分享他們之間相互轉換的集中常用方法(主要用到的庫有datetime、pandas以及dateutil)。
(一)datetime -> str
datetime類型轉成str一般常用的有兩種方法:str和傳入格式化字符串的strftime方法。
1.str()類型轉換
from datetime import datetime
stamp = datetime(2011, 1, 3)
stamp
str(stamp)
stamp.strftime('%Y-%m-%d')
(一)str -> datetime
將str轉成日期時間類型有三種常用方法:一個是與strftime互逆的strptime方法、以及dateutil包的parse方法、還有pandas的to_datetime方法。
1.strptime方法
value = '2011-01-03'
datetime.strptime(value, '%Y-%m-%d')
2.dateutil包中的parser.parse方法
from dateutil.parser import parse
parse('2011-01-03')
這個方法還有個很好的地方就是不用你顯示的給定編碼格式,dateutil可以解析幾乎所有人類能夠理解的日期表示形式。
parse('Jan 31, 1997 10:45 PM')
在國際通用的格式中,日出現在月的前面很普遍,傳入dayfirst=True(默認值為False)即可解決這個問題.
parse('6/12/2011', dayfirst=True)
注意:parser是一個實用但不完美的工具。比如說,它會把一些原本不是日期的字符串認作是日期(比如"42"會被解析為2042年的今天)。
3.pandas包的to_datetime方法
to_datetime方法可以解析多種不同的日期表示形式。對標準日期格式(如ISO8601)的解析非常快:
import pandas as pd
datestrs = ['2011-07-06 12:00:00', '2011-08-06 00:00:00']
pd.to_datetime(datestrs)
它還可以處理缺失值(None、空字符串等):
idx = pd.to_datetime(datestrs + [None])
idx
其中第三個元素為NaT:Not a Time。是pandas中時間戳數據的null值。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
