1. 程式人生 > >《利用python進行資料分析》第十章 時間序列(一)

《利用python進行資料分析》第十章 時間序列(一)

stamp = ts.index[2] print ts[stamp],'\n' #還有更方便的用法,傳入可以被解釋為日期的字串 print ts['1/10/2011'] print ts['20110110'],'\n' #對於較長的時間序列,只需傳入“年”或“年月”即可輕鬆選取資料切片 long_ts = Series(np.random.randn(1000), index = pd.date_range('1/1/2000',periods = 1000)) #-*- coding:utf-8 -*- import numpy as np import pandas as pd import matplotlib.pyplot as plt
import datetime as dt from pandas import Series,DataFrame from datetime import datetime from dateutil.parser import parse import time print long_ts,'\n' print long_ts['2001'],'\n' print long_ts['2001-05'],'\n' #通過日期進行切片的方式只對規則Series有效: print ts[datetime(2011,1,7):],'\n' #由於大部分時間序列資料都是按照時間先後排序的,因此你可以用不存在於該時間序列中的時間戳對其進行切片(即範圍查詢)
#就是說,本來1/6/2011不在index中,卻可以用來當作範圍 print ts['1/6/2011':'1/11/2011'],'\n' #這裡可以傳入字串日期、datetime或者Timestamp print 'This is time and localtime' print "time.time(): %f " % time.time() print time.localtime( time.time() ) print time.asctime( time.localtime(time.time()) ) ltime=time.localtime(int(time.time())) #
time.time()不能直接運用strftime進行轉換 print time.strftime("%Y-%m-%d %H:%M:%S", ltime) #time asctime() 函式接受時間元組並返回一個可讀的形式為"Tue Dec 11 18:07:14 2008" print 'over','\n' #還有一個等價方法擷取兩個日期之間的TimeSeries. print ts.truncate(after = '1/9/2011'),'\n' #上面這些對DataFrame也有效 dates = pd.date_range('1/1/2000',periods = 100,freq = 'W-WED') #這裡的freq是按照星期進行增加 long_df = DataFrame(np.random.randn(100,4),index = dates,columns = ['Colorado','Texas','New York','Ohio']) print long_df.ix['2001-05']