昨天睡了一天,是頭暈的那種肥印,然后也沒心思來做筆記识椰,沒心思來看書,其實深碱,我知道腹鹉,或許我現(xiàn)在做的只是在轉(zhuǎn)移一種矛盾,可是我還是想劍走偏鋒敷硅,渴望能夠渡過陳倉功咒。我現(xiàn)在是知道霸王為何要自剄了,雖然江東弟子多才俊绞蹦,卷土重來未可知力奋,可是他那可驕傲的心該往哪里安放呢,為贏天下幽七,生死都是小事景殷。惟楚有才啊。澡屡。猿挚。我的南楚湘中啊。挪蹭。亭饵。
算了,今天弄時間序列梁厉,時間一天天的過去了辜羊,自己是在是沒有學(xué)到什么東西,可能還是量的積累過程吧词顾,總會有質(zhì)變的八秃,只要自己堅持下去。我一直想進(jìn)入實操階段肉盹,可是每每一開始昔驱,就發(fā)現(xiàn)自己的基礎(chǔ)不牢固,然后反而浪費了很多時間上忍。
from datetime import datetime
datetime(2014, 12, 15, 17, 30) ? ? ? ? ? ?? datetime.now()獲取現(xiàn)在的時間
datetime.date(datetime(2014, 12, 15))??? 可以創(chuàng)建時間 用函數(shù)
datetime.now().date()?????? 獲取日期
datetime.time(datetime(2014, 12, 15, 17, 30))? ? datetime.now().time()?? 獲取時間
Timestamp objects?????? 時間戳? 應(yīng)該叫這個吧?? 里面有引號
pd.Timestamp('2014-12-15')?
pd.Timestamp('17:30')????? 返回當(dāng)前時間??
Timedelta??? 兩個時間之間的差
Datetime Index
將格式不同的序列轉(zhuǎn)換為時間索引骤肛,值得注意的是pd.to_datetime()函數(shù)默人返回的是Numpy數(shù)組纳本,如果他有不能解析的時間戳的時候。所以一般情況下以防萬一腋颠,加一個coerce=True參數(shù)放在后面
pd.to_datetime(['Aug 1, 2014', 'foo'], coerce=True)
pd.date_range()?? function.這個函數(shù)可以方便的創(chuàng)建連續(xù)的時間索引
periods = pd.date_range('8/1/2014', periods=10)
date_series = pd.Series(np.random.randn(10), index=periods)
subset = date_series[3:7]
s2 = pd.Series([10, 100, 1000, 10000], subset.index)? 他山之石繁成,可以攻玉?
date_series['2014-08-05':'2014-08-07']
s3 = pd.Series(0, pd.date_range('2013-01-01', '2014-12-31'))
Creating time-series data with specific frequencies? 用特別的周期創(chuàng)建時間序列
在pd.date_range()里面加上參數(shù)freq=‘’就可以打
pd.date_range('2014-08-01 12:10:01', freq='S', periods=10)? 按秒遞增
Calculating new dates using offsets???? 按偏移量計算時間
還有一些內(nèi)建的參數(shù) 可以使用
d = datetime(2014, 8, 29)
do = pd.Date Offset(days = 1)
d + do ? ? ? 得到8月30
from pandas.tseries.offsets import *
d + Business Day()? ? ?? d + 2 * Business Day()? ???? 得先導(dǎo)入模塊才能用
BMonth End().rollforward(datetime(2014, 9, 15))??? 滾動到本月月末的那天
d - Week(weekday = 1)? 得到的是d的上個周二
固定的偏移量,例子如下
上面有每個字母的含義淑玫,但還是沒懂結(jié)果的意思巾腕,尤其是月份那個參數(shù)
Representing durations of time using Period objects? 呈現(xiàn)時間區(qū)間用
aug2014 = pd.Period('2014-08', freq='M')
mp2013 = pd.period_range('1/1/2013', '12/31/2013', freq='M')
for p in mp2013:
print ("{0} {1}".format(p.start_time, p.end_time))
ps = pd.Series(np.random.randn(24),pd.period_range('1/1/2013','12/31/2014', freq='M'))
Handling holidays using calendars?? 處理假期用日歷
from pandas.tseries.holiday import *? 導(dǎo)入模塊
cal = USFederal Holiday Calendar()??? 初始化函數(shù)
for d in cal.holidays(start='2014-01-01', end='2014-12-31'):
???????? print (d)
cbd = CustomBusinessDay(holidays=cal.holidays())
datetime(2014, 8, 29) + cbd
Shifting and lagging
np.random.seed(123456)
ts = Series([1, 2, 2.5, 1.5, 0.5],
pd.date_range('2014-08-01', periods=5))
ts.shift(1)??? 值 向前偏移一天
ts.shift(-2)??? 從后向前偏移
ts / ts.shift(1)? ? ? ? ? ts.shift(1, freq="B")? ? ? ts.tshift(5, freq="H")
?
ts.shift(1, Date Offset(minutes=0.5))? ? ? ? ? ts.tshift(-1, freq='H')
daily = hourly.asfreq('D')? ? ? daily.asfreq('H')? ? ? daily.asfreq('H', method='ffill')
daily.asfreq('H', method='bfill')
first_minute = walk['2014-08-01 00:00']
first_minute.plot()
plt.legend(labels=['Rolling Mean', 'Raw']);
?? mean_abs_dev = lambda x: np.fabs(x - x.mean()).mean()
? pd.rolling_apply(h1w, 5, mean_abs_dev).plot();