在Part 3,我們獲取了00878的每個持倉的盈餘和價格,本篇會講解最後的部分,將統整後的市值、盈餘計算此ETF的本益比。
df_878['Earning_Trailing'] = df_878['股數'].str.replace(',', '', regex=True).astype(float) * df_878['eps_trailing'].astype(float)
df_878['Earning_Forward'] = df_878['股數'].str.replace(',', '', regex=True).astype(float) * df_878['eps_forward'].astype(float)
df_878['MarketValue_878'] = df_878['股數'].str.replace(',', '', regex=True).astype(float) * df_878['previousClose'].astype(float)
filt = df_878['eps_forward'].notna()
df_878['股數']
列中可能含有逗號,這些逗號先被去除,再將數值轉換為 float
型別,便於數值計算。Earning_Trailing
和 Earning_Forward
是公司過去和預期的盈餘。MarketValue_878
是公司的市值,由收盤價和股票數量相乘得到。filt
是一個篩選器,用於篩選 eps_forward
非空值的行。Earning_Trailing_878 = df_878['Earning_Trailing'].loc[filt].sum()
Earning_Forward_878 = df_878['Earning_Forward'].loc[filt].sum()
MarketValues_878 = df_878['MarketValue_878'].loc[filt].sum()
Earning_Trailing_878
是所有的過去盈餘總和。Earning_Forward_878
是所有的預期盈餘總和。MarketValues_878
是所有的市值總和。PE_Trailing_878 = MarketValues_878 / Earning_Trailing_878
PE_Forward_878 = MarketValues_878 / Earning_Forward_878
PE_Trailing_878
是根據過去盈餘計算的PE。PE_Forward_878
是根據預期盈餘計算的PE。如果發現forward PE算出來比trailing PE大,代表公司或分析師預估未來的EPS比現在還差(看壞),可作為投資的參考。
通常一檔ETF包的高成長股(市值)越多,forward PE理應比trailing PE低的多,這可以作為其中一個驗證資料的依據。之後我們會繼續介紹如何撈取其它的ETF,more to come!
謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads/ FB,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!