python數(shù)據(jù)分析應(yīng)用 - 近5年八類資產(chǎn)價(jià)格走勢(shì)分析

最近發(fā)現(xiàn)PYTHON與TABLEAU的組合簡直就是我們數(shù)據(jù)分析愛好者的絕佳工具組合分衫。最近對(duì)大類資產(chǎn)配置這個(gè)問題產(chǎn)生了較大的興趣,筆者就使用python作為數(shù)據(jù)獲取珠叔、數(shù)據(jù)處理的工具,同時(shí)采用tableau作為數(shù)據(jù)展現(xiàn)的工具簡單分析了8大類資產(chǎn)近5年多的價(jià)格走勢(shì),也許會(huì)對(duì)當(dāng)下大類資產(chǎn)配置決策提供一些參考依據(jù)蚓曼。這8大類資產(chǎn)包括:

  • 小麥
  • 大豆
  • 新華富時(shí)A50指數(shù)
  • 原油
  • 黃金
  • 美元指數(shù)
  • 道瓊斯指數(shù)

數(shù)據(jù)獲取

數(shù)據(jù)來源,直接爬取investing.com網(wǎng)站公布的各大類資產(chǎn)日行情數(shù)據(jù)钦扭,以黃金為例python源代碼如下:

#首先需要安裝selenium以及chrome驅(qū)動(dòng)
from selenium import webdriver
def crawlMainIndex():
    '''
    在INVESTING.COM網(wǎng)站下下載最新的常見指數(shù)行情
    '''
    driver=webdriver.Chrome()
    #爬取黃金指數(shù)行情
    mainIndexDownloader(driver,'gold','http://cn.investing.com/commodities/gold-historical-data')
    #此處省略爬取其它指數(shù)行情...
    driver.quit()

def mainIndexDownloader(driver,indextype,url):
    '''
        根據(jù)xpath定位交易日纫版、收盤價(jià)、開盤價(jià)客情、最高價(jià)其弊、最低價(jià)、成交量膀斋、日漲幅等日行情數(shù)據(jù)
        最后保存到數(shù)據(jù)庫當(dāng)中梭伐,為了可以每天增量下載,這里直接使用django的持久化框架概页。
    '''
    time.sleep(1)
    driver.get(url)
    time.sleep(1)
    i = 1
    while True:
        quotes = driver.find_elements_by_xpath('//*[@id="curr_table"]/tbody/tr[%d]/td' % i)
        if len(quotes) == 0:
            break
        #mainIndexQuote類直接映射為mysql數(shù)據(jù)庫當(dāng)中cron_mainindexquote表
        data = mainIndexQuote(
            tradeday=dateConverter(quotes[0].text),
            closeprice=quotes[1].text,
            openprice=quotes[2].text,
            highprice=quotes[3].text,
            lowprice=quotes[4].text,
            tradevol=quotes[5].text,
            chgpcnt=quotes[6].text.replace('%', ''),
            type=indextype
        )
        existList = mainIndexQuote.objects.filter(tradeday=dateConverter(quotes[0].text)).filter(type=indextype)
        #判斷是否數(shù)據(jù)庫當(dāng)中已經(jīng)存在籽御,不存在則插入
        if len(existList) == 0:
            #持久化,保存在數(shù)據(jù)庫當(dāng)中
            data.save()
        i += 1

數(shù)據(jù)處理

想要分析抓取下來的8類資產(chǎn)價(jià)格走勢(shì)惰匙,必須要解決以下幾個(gè)問題:

  • 不同品種的交易日期并不完全相同技掏,放到一起展示,存在不對(duì)齊現(xiàn)象项鬼,即缺失值哑梳,必須對(duì)缺失值進(jìn)行處理
  • 不同交易品種,價(jià)格分布的區(qū)間不一樣绘盟,需要進(jìn)行規(guī)一化處理
  • 由于數(shù)據(jù)庫當(dāng)中表的存儲(chǔ)方式為長表鸠真,需要轉(zhuǎn)換為寬表悯仙,具體原理請(qǐng)參見筆者的另一篇簡書筆記Python數(shù)據(jù)分析之重塑reshaping與交叉表pivot table(1)

python語言當(dāng)中的數(shù)據(jù)分析包pandas為解決上述數(shù)據(jù)分析過程當(dāng)中的常見問題提供了非常便捷的方法,對(duì)應(yīng)的源代碼如下吠卷,可以看出上述三個(gè)問題锡垄,只需要兩行代碼

import pandas as pd
def analyseMainIndex():
    '''
    根據(jù)歷史數(shù)據(jù)抓取的各主要指數(shù)行情,分析大類資產(chǎn)栩置情況
    :return:
    '''
    with engine.connect() as conn, conn.begin():
        df = pd.read_sql_table('cron_mainindexquote', conn)
    #由于數(shù)據(jù)庫當(dāng)中表的存儲(chǔ)方式為長表祭隔,需要轉(zhuǎn)換為寬表货岭,具體原理請(qǐng)參見筆者的另一篇簡書筆記
    #http://www.reibang.com/p/e7ac9a0f5e6c
    df1=df.pivot(index='tradeday', columns='type', values='closeprice')
    #使用后向填充,作為缺失值處理方式,當(dāng)然也可以使用前期填充疾渴,修改bfill參數(shù)值即可
    #通過使用lambda匿名函數(shù)可以將不同大類資產(chǎn)的價(jià)格規(guī)范化為[0,1]區(qū)間千贯,方便合并展示
    df2=df1.fillna(method='bfill').apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
    #將處理后的規(guī)范化的數(shù)據(jù)直接存儲(chǔ)到CSV文件當(dāng)中,當(dāng)然此處也可以直接保存到數(shù)據(jù)庫當(dāng)中
    df2.to_csv(r'd:\temp\normalization.csv')

數(shù)據(jù)展現(xiàn)

數(shù)據(jù)可視化的意義在于搞坝,讓人在信息爆炸時(shí)代快速搔谴、直觀地獲取自已關(guān)注的信息。通過tableau直連前面已經(jīng)清理整理好的csv數(shù)據(jù)文件之后桩撮,幾秒鐘之內(nèi)即可繪制出8類資產(chǎn)價(jià)格走勢(shì)圖敦第。效果如下:

8類資產(chǎn)近5年價(jià)格走勢(shì).png

從上圖中可以發(fā)現(xiàn),在這八大類資產(chǎn)當(dāng)中距境,小麥申尼、大豆、銅垫桂、石油都處于近5年來的相對(duì)價(jià)格低位师幕,而美元指數(shù)、道指诬滩、已經(jīng)處于5年內(nèi)價(jià)格高位霹粥,正所謂,人往高處走疼鸟,水往低處流后控,那是不是說近5年來的相對(duì)低位的資產(chǎn)種類看多就會(huì)因?yàn)楸坏凸蓝容^安全呢?至少從近期來看空镜,結(jié)論似乎是對(duì)的浩淘,但相信答案沒有那么簡單。
工行網(wǎng)銀交易截圖

圖片發(fā)自簡書App

提出問題吴攒,收集數(shù)據(jù)张抄,學(xué)習(xí)原理,嘗試回答問題洼怔,正是數(shù)據(jù)分析的迷人之處署惯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市镣隶,隨后出現(xiàn)的幾起案子极谊,更是在濱河造成了極大的恐慌诡右,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轻猖,死亡現(xiàn)場(chǎng)離奇詭異帆吻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蜕依,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門桅锄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人样眠,你說我怎么就攤上這事〈渲猓” “怎么了檐束?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長束倍。 經(jīng)常有香客問我被丧,道長,這世上最難降的妖魔是什么绪妹? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任甥桂,我火速辦了婚禮,結(jié)果婚禮上邮旷,老公的妹妹穿的比我還像新娘黄选。我一直安慰自己,他們只是感情好婶肩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布办陷。 她就那樣靜靜地躺著,像睡著了一般律歼。 火紅的嫁衣襯著肌膚如雪民镜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天险毁,我揣著相機(jī)與錄音制圈,去河邊找鬼。 笑死畔况,一個(gè)胖子當(dāng)著我的面吹牛鲸鹦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播问窃,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亥鬓,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了域庇?” 一聲冷哼從身側(cè)響起覆积,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤宽档,失蹤者是張志新(化名)和其女友劉穎吗冤,沒想到半個(gè)月后九府,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年宣羊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仇冯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族操。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坪创,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柠掂,到底是詐尸還是另有隱情依沮,我是刑警寧澤涯贞,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布宋渔,位于F島的核電站辜限,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颗胡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一毒姨、第九天 我趴在偏房一處隱蔽的房頂上張望钉寝。 院中可真熱鬧,春花似錦俘枫、人聲如沸崩哩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矿筝。三九已至,卻和暖如春窖维,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鼻疮。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工判沟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崭篡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓迹炼,卻偏偏與公主長得像颠毙,于是被迫代替她去往敵國和親斯入。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砂碉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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

  • 技術(shù)分析:股指是最好的參照基本分析:把握宏觀經(jīng)濟(jì)投資組合:根據(jù)行情調(diào)整成功者的啟示:具備與眾不同的思維方式超越專家...
    你在學(xué)校閱讀 4,551評(píng)論 0 13
  • 1.類級(jí)別注解 @Entity映射實(shí)體類 @Table映射數(shù)句庫表 @Entity(name="tableName...
    苗義閱讀 1,132評(píng)論 0 47
  • 女兒暑假要出去一趟咱扣,需要去“出入境中心”辦戶照。 我把手續(xù)證件全交給了在縣城上班的宗姨媽闹伪,托她去辦沪铭。 姨媽去辦,回...
    韓悅沐_療愈_成長閱讀 235評(píng)論 0 3
  • 攀樓而上,一躍而下厅克,瑩粉滿地赔退,奔波為憶硕旗。晴樓鏡相,面飾紅白漆枚,怡形捉影墙基,神情漠然∷⑾玻空手套物,恥心不改掖疮,藏匿怠倦,造夢(mèng)...
    栽愣閱讀 312評(píng)論 0 1
  • 01 今天早上纺蛆,我到了教室準(zhǔn)備給學(xué)生發(fā)上周的數(shù)學(xué)試卷。 幾乎每個(gè)孩子都是一副摩拳擦掌的狀態(tài)规揪,他們急切地想知道自己考...
    穎之老師閱讀 472評(píng)論 0 3