Python 用于金融數(shù)據(jù)分析第7課-----Pandas處理時間序列數(shù)據(jù)

一固惯、Rolling 和 Expanding

rolling和expanding都是類似的弯囊,目的是查看股票市場價格隨著時間的變化虽缕,不同的是rolling average算的是最近一個窗口期(比如說20天)的一個平均值台妆,過了一天這個窗口又會向下滑動一天算20天的平均值础锐;expanding的話扶叉,是從第一個值就開始累加地計算平均值勿锅。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
df=pd.read_csv('walmart_stock.csv')
df.head()
#在這里我把索引設為日期列
df.set_index('Date')
df.head()

輸出結(jié)果


繪制一下開盤指數(shù)

df['Open'].plot(figsize=(16, 6), '-')

rolling

現(xiàn)在開始繪制滾動平均值


根據(jù)官方文檔,我們主要設置窗口大小就可以了枣氧。

#注意在滾動之后是要設置聚合函數(shù)的溢十,expanding一樣,跟groupby操作類似
df.rolling(7).mean().head(10)

可以看到前6天是沒有值的达吞,原因是前6天都沒有之前的7天數(shù)據(jù)张弛,所以是nan。

#繪制出open的原數(shù)據(jù)的曲線和滾動平均值的曲線
df['former 30 days rolling Open mean']=df['Open'].rolling(30).mean()
df[['Open', 'former 30 days rolling Open mean']].plot(figsize=(16, 6))

可以看到滾動平均值會更加地差異化更小。

Expanding

#在這里要定義最小的觀察元素是1個乌庶,否則前面的可能都會是nan
df['former 30 days expanding Open mean']=df['Open'].expanding(min_periods=1).mean()
df[['Open', 'former 30 days expanding Open mean']].plot(figsize=(16, 6))

從圖上可以看得出种蝶,expanding曲線相對于原數(shù)據(jù)點的曲線要更加穩(wěn)定一些,它可以用來看這只股票的長期穩(wěn)定性瞒大。

Bollinger Bands

df['former 30 days rolling Close mean']=df['Close'].rolling(20).mean()
df['upper bound']=df['former 30 days rolling Close mean']+2*df['Close'].rolling(20).std()#在這里我們?nèi)?0天內(nèi)的標準差
df['lower bound']=df['former 30 days rolling Close mean']-2*df['Close'].rolling(20).std()
df[['Close', 'former 30 days rolling Close mean','upper bound','lower bound' ]].plot(figsize=(16, 6))

二螃征、Resampling

重采樣可以認為跟 group以及上面說到的rolling和expanding都是一樣的,都是分組操作透敌。


官方文檔當中主要注意的是rule盯滚,它是一個字符串的形式給出,表示我們希望以年月日工作日等等來對數(shù)據(jù)進行編組酗电,同樣地是編組完之后需要有個聚合函數(shù)魄藕。
看一下rule的種類。


我們先把以上麥當勞的數(shù)據(jù)的index進行轉(zhuǎn)換成datetime格式撵术,可以使用pd.to_datetime的方法背率。

df.index=pd.to_datetime(df.index)
type(df.index)

通過轉(zhuǎn)換以后就是datetime格式了,接下來就是進行resample嫩与。

df.resample('M').mean()

可以看得到寝姿,在按照月份resample之后多余的行會去掉,只剩下最后統(tǒng)計的那一行(在這里就是每個月底統(tǒng)計上一個月的平均值)划滋。
也可以自己定義我要對group后的元素怎么操作(比如說按照一個月group以后我想取出第一個值饵筑,或者說是其他的)

def first_day(grp):
    return grp[0]#返回這個月的第一天的值
df.resample('M').apply(first_day)

這樣,每個月底都會返回這個月的第一天的值处坪。

三根资、Time shifting

time shifting其實就是把索引往前或者往后挪動


df.shift(10)

這里索引往前挪了10天,相當于數(shù)據(jù)往后挪動了10天同窘,缺失值用nan補充玄帕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市塞椎,隨后出現(xiàn)的幾起案子桨仿,更是在濱河造成了極大的恐慌,老刑警劉巖案狠,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件服傍,死亡現(xiàn)場離奇詭異,居然都是意外死亡骂铁,警方通過查閱死者的電腦和手機吹零,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拉庵,“玉大人灿椅,你說我怎么就攤上這事。” “怎么了茫蛹?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵操刀,是天一觀的道長。 經(jīng)常有香客問我婴洼,道長骨坑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任柬采,我火速辦了婚禮欢唾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粉捻。我一直安慰自己礁遣,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布肩刃。 她就那樣靜靜地躺著祟霍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪树酪。 梳的紋絲不亂的頭發(fā)上浅碾,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音续语,去河邊找鬼。 笑死厦画,一個胖子當著我的面吹牛疮茄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播根暑,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼力试,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了排嫌?” 一聲冷哼從身側(cè)響起畸裳,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淳地,沒想到半個月后怖糊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡颇象,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年伍伤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遣钳。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡扰魂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情劝评,我是刑警寧澤姐直,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蒋畜,受9級特大地震影響声畏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜百侧,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一砰识、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧佣渴,春花似錦辫狼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砂竖,卻和暖如春真椿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乎澄。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工突硝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人置济。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓解恰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浙于。 傳聞我的和親對象是個殘疾皇子护盈,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容