返回后的数据处理_【掘金使用技巧2】掘金返回数据中时间的处理方法
掘金輸出的時間數據處理方法
掘金在為使用者提供數據時,有一類數據處理起來有些麻煩,這類數據就是時間數據。
它們長這樣:
或者這樣:
查看一下它們的類型,發現有datetime,datetime64,Timestamp等等。
這么多各種各樣的類型,我們應該怎樣處理呢?
轉化成標準的“年月日”格式
以tick里面的“created_at”為例,該數據由“年、月、日、時、分、秒+時區”組成。想要轉化為標準的年月日時分秒數據,需要用到datatime庫中的strftime。strftime是將一個字符串轉化為時間格式。因此需要先將“created_at”轉化為字符串,再用strptime轉化為時間格式。
由于“created_at”里面包含元素過多,我們只需要提取其中的年月日即可,這是要用到split函數,將字符串拆分。我們只需要“年月日”這部分,所以要將空格之前的部分提取出來。
步驟:將時間轉化為字符串——將字符串拆分——將新的字符串轉化為時間格式
time = tick['created_at']t = datetime.datetime.strptime(str(time).split(' ')[0],'%Y-%m-%d')如果是裝在dateframe里面的時間怎么處理?
dateframe的話要先遍歷整個dateframe中的eob,逐個轉化為標準時間格式。此時要用到apply函數。
data = history(symbol='SHSE.600519',start_time='1997-01-20',end_time='2020-01-01',fields='symbol,eob,close',df=True)data['eob'] = data['eob'].apply(lambda x:x.strftime('%Y-%m-%d'))轉化成標準的“年月日,時分秒”格式
和上面的思路相同,不過這次要提取的字符串部分變為“年月日,時分秒”這部分,所以要將"+"之前的部分提取出來,再將“.”前面的部分提出來。
time = tick['created_at']t = datetime.datetime.strptime(str(time).split('+')[0].split('.')[0],'%Y-%m-%d %H:%M:%S')返回結果:
提取其中的年、月、日、時、分、秒
有時我們需要提取某段時間的其中一部分,這時直接提取相應部分即可。
# 年月日、時分秒year = t.yearmonth = t.monthday = t.dayhour = t.hourminute = t.minutesecond = t.secondweekday = t.weekday()時間調整
如果我想要向前一天或向后一天的數據時該怎么辦?
這時要用到datetime里面的timedelta函數。這個函數能夠自動返回時間差。
舉個例子:如果我想要當前時間向前推一天。首先將timedelta里面設置為1天,向前推一天就表示在原來的時間-時間間隔。
change_time = t - datetime.timedelta(days=1)得到的時間剛好是2020年8月31日。
如果是向后推一天,就用(t+時間間隔)即可。
來源:掘金社區? 作者:四兩
聲明:本公眾號致力于量化投資相關的干貨文章分享,僅供交流探討,不構成任何投資建議!著作權歸作者所有,若涉及侵犯您的權益,敬請原作者見諒,并后臺留言聯系小編進行協商或刪除處理,謝謝。
END
點擊“閱讀原文”掘金量化實盤申請總結
以上是生活随笔為你收集整理的返回后的数据处理_【掘金使用技巧2】掘金返回数据中时间的处理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思维力:高效的系统思维
- 下一篇: mysql优化模糊查询_MySQL的LI