Python 時間的處理

Python 時間的處理

標籤(空格分隔): python 數據分析


日期以及時間數據類型

日期 data, 時間 time
datatime是包含data以及time 的數據類型
timedelta兩個datatime之間的差值

字符串和datatime的轉化

datetime轉換成字符串

stamp = datetime(2011, 1, 3)
str(stamp)
stamp.strftime('%Y-%m-%d') #可以自己定義格式

字符串轉datetime

value = '2011-01-03'
stamp = datetime.strptime(value, '%Y-%m-%d')

還有一種很方便的就是通過第三方包dateutil

from dateutil.parser import parser
stamp = parser('2011-03-11') #parser幾乎對所有格式時間都可以轉化,但是對有歧義的需要小心,最後自己手動指明參數datefirst=true

pandas處理成組日期

datestrs = ['7/6/2011', '8/6/2011']
pd.to_datetime(datestrs+['None']) #pandas會將缺失值處理成NaT(Not a Time)
  • %Y 4位數的年
  • %y 2位數的年
  • %m 2位數的月
  • %d 2位數的日
  • %H 24小時 %I12小時
  • %M 2位數的分
  • %S 秒0, 61
  • %w 一週星期幾
  • %U [00, 53]每年的第多少周,第一個星期天前被認爲是第0周
  • %W [00, 53]每年的第多少周,第一個星期一前被認爲是第0周
  • %F %Y-%m-%d的縮寫
  • %D %m/%d/%y的縮寫
  • %a 星期幾簡寫 %A星期幾全寫
  • %b 月份簡寫 %B月份全寫

Pandas時間片段

tmp = pd.date_range('1/1/2000', periods=1000)
longer_ts = Series(np.random.randn(1000), index=tmp)
longer_ts['2001'] #就可以把2001年的都取出來
#通過日期進行切片的方式只對規則Series有效???
longer_ts['1/6/2001':'1/11/2011'] #這裏時間戳的日期可以不存在

帶重複索引的時間序列,然後可以聚合
pd.date_range('1/1/2000', '10/1/2000', freq='BM)BM表示每月的最後一個工作日

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章