Member-only story

Python 解鎖 :如何計算 ETF 的PE Ratio? (以00878為例) Part 4

DigNo Ape
Oct 29, 2024

--

Part 3,我們獲取了00878的每個持倉的盈餘和價格,本篇會講解最後的部分,將統整後的市值、盈餘計算此ETF的本益比。

Part 1 Part 2 Part 3 Part 4

  • 資料清理與轉換
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()
  1. df_878['股數'] 列中可能含有逗號,這些逗號先被去除,再將數值轉換為 float 型別,便於數值計算。
  2. Earning_TrailingEarning_Forward 是公司過去和預期的盈餘。
  3. MarketValue_878 是公司的市值,由收盤價和股票數量相乘得到。
  4. 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()
  1. Earning_Trailing_878 是所有的過去盈餘總和。
  2. Earning_Forward_878 是所有的預期盈餘總和。
  3. MarketValues_878 是所有的市值總和。
  • 計算PE
PE_Trailing_878 = MarketValues_878 /…

--

--

DigNo Ape
DigNo Ape

Written by DigNo Ape

我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。

No responses yet