跳到主要內容

📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!

 

上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下:

🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率

為什麼要做資料視覺化?

相信圖文甚至影音箱對於文字來說更為吸引我們進行知識的汲取,一張好的圖表讓我們一眼就能看出資料的趨勢、分布,提升整體效率,因此當資料、統計都準備好之後,下一步就是以圖表來進行分析並決策。

那這次的主題會使用到的套件為「Matplotlib提供了靜態、動態與互動式圖表,是python語言中資料視覺化的強大利器。

我們應該選用哪一種圖表呢?

不同的情境下選用不同的圖表,就像戰場上根據戰況選用不同的武器甚至策略,因此並沒有一個標準答案,不論是時序、量化...都有其擅長與短處,看看這篇今周刊的文章就有提到「不同圖表不同使用時機,我的報表適合什麼圖形?你用對了嗎?」。

而我們的情境是要分析目前股價屬於偏貴還是便宜,因此會有最高、最低以及目前錨定位置,那以這樣的情境我們可以選用了箱型圖來做表述:

因為我們並沒有時序上的需求,因此也不適用於折線圖、長條圖這種常見的圖表,反而是箱型圖可以表述目前的價格偏高還是低。

開始實作的旅程

上一篇」我們已經統計出最高/最低殖利率了,這次我們進行延伸,以最新成交價搭配圖表來評估目前股價的位階,因此會抓取最新成交價、計算目前殖利率、繪製圖表這幾個步驟,以下將逐步說明。

抓取最新成交價

我們一樣使用dom分析的工具來抓取指定表格,如何抓? 請參閱「🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率」,以下是主要抓取的部分:

# 這一段是「成交價」區塊
price_data = bs.find(class_ = 'b1 p4_2 r10')

接著我們試著取得成交價,並進行轉型為float以利後續計算。

import pandas

dfs = pandas.read_html(price_data.prettify())

node = dfs[0]

# 僅留下第一列
node.columns = node.columns.get_level_values(1)

# 印出Columns輔助以下抓取重要資訊
# node.columns

# 取得第一列的成交價
x = node['成交價'].iloc[0]
price = float(x)

計算目前殖利率

請參閱「🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率」,並搭配上述最新成交價的資訊進行公式的替換即可。

繪製圖表

重頭戲來了,具備資料之後,下一步就是將這些資料繪製成簡單易懂的圖表,以利進行分析,而這邊會使用到的是Python語言中較為知名的套件「matplotlib」,提供種類豐富的圖表類型,而這次我們採用範例的是箱型圖,而箱型圖繪製的API如下:

import matplotlib.pyplot as plt

plt.boxplot(<...資料集>, <x軸, ...更多配置>)

繪製目前股價位階圖

  • 以N年平均最高股價與最低股價作為上下限。
  • 對照目前股價位階。
  • 股價越低代表價格越迷人。
import matplotlib.pyplot as plt

# lowest 近N年平均最低價
# price 目前股價
# highest 近N年平均最高價
data = [lowest, price, highest]

# 標籤
labels = ['price']

plt.boxplot(data, labels=labels)
plt.show()

繪製目前殖利率位階圖

  • 以N年平均最高與最低殖利率作為上下限。
  • 對照目前的殖利率位階。
  • 殖利率越高代表目前CP值越高。
import matplotlib.pyplot as plt

# lYield 近N年平均最低殖利率
# cYield 目前殖利率
# hYield 近N年平均最高殖利率
data = [lYield, cYield, hYield]

labels = ['yield']

plt.boxplot(data, labels=labels)
plt.show()o

相信具有圖表的輔助更能夠快速的判斷及決策,而Matplotlib這套工具就能夠很好的薑我們的資料繪製成圖,非常便利。

結語

藉由上述的圖表呈現可以得知目前股價處於近N年的哪個位階,以價格來說有些偏高,以殖利率來說有些偏低,因此會暫時觀望,等待時機再行購入,當然這些都是過去資料並不代表未來,過去的數據不論怎麼推估都並非產生絕對的未來,我們僅能掌握更多數據來提升對未來的決策判斷。

不妨親自動動手來計算這些數據,相信會更加印象深刻,以後遇到各種資料我們都能夠較為準確的判斷,而不是僅憑感覺盲目的猜測,造成不精準的決策導致損失。

今天的範例都在這裡「📦 goodinfo_yield.ipynb」歡迎自行取用。

如何使用請參閱「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」。

------------------------------------------------------------------------------------------------

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?

歡迎加入一起練習寫作,賺取知識,累積財富!

Give feedback

留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)

【Excel好好玩】 自己的資產自己管!善用Google Sheet來幫我們評估貸款

這次介紹的主題是關於Excel的貸款還款計畫試算,我們人生中總會遇到需要大筆金額的花費,但當資金不夠時就得進行貸款,而貸款之前如果我們能夠審慎評估,並分析自己的還款能力之後在進行凍作,相信風險會小很多,因此就自己動動手來使用Google Sheet進行試算吧! 基本資料 ● 貸款總額: 1000000 ● 貸款期數: 84月 ● 年利率: 2.11% ● 月利率: 0.18% P.S 月利率 = 年利率 / 12 重要函式 PMT : 這是Google Sheet內建的重要年金計算公式,我們可以善用這個公式來計算固定利率及期數的固定攤還本息。因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 動手做 首先我們在Excel表上列出我們的基本資料 圖片來源 其中月利率的部分就使用公式「=B4/12」 接著我們填上第一列的期數跟餘額 圖片來源 =B2 =B3 使用關鍵PMT函數來計算本息的部分 因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 -PMT(貸款利率(月利率), 貸款期數, 貸款總額) =-PMT($B$5,$B$3,$B$2) 圖片來源 計算利息 利息 = 貸款餘額 x 月利率 =B8*$B$5 圖片來源 計算本金 本金 = 本息 - 利息 =C8-D8 圖片來源 製作第二列餘額的部分 餘額的部分 = 上一期的餘額 - 上一期的本金 圖片來源 接著拖曳該兩列往下拉,即可查看每一期的利息與本金 圖片來源 結語 雖然市面上已經有很多貸款銀行都提供了試算功能,但如果我們想要進一步管理自己的資產時,就需要將每一期的金額給計算出來,因此才會將公式運用在Excel表,讓我們的資產管理表能夠結合負債,進一步評估我們理財行動的下一步,希望這樣的經驗可以幫助到正在理財道路上打拼的夥伴,讓我們透過有效的管理,幫助荷包長大吧! 喜歡撰寫文章的你,不妨來了解一下: Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入? 歡迎加入一起練習寫作,賺取知識,累積財富!