三檔台股收盤價一次抓成表:yfinance 實測,以及表裡多出來的那一天
📌 數據僅限本工具現階段參考用。本文只示範工具怎麼安裝、設定、執行,不是投資建議,也不推薦任何股票。
重點摘要
- yfinance 1.7.0 在 Python 3.12 以 pip install -e . 安裝約 11 秒,不需要金鑰。
- 一次下載 2330.TW、2317.TW、2454.TW 在 2026 年 10 月的日資料,得到 20 列表格,可存成 close.csv。
- 與證交所公開資料對照:收盤價 57 筆全部相同,但表比證交所多出 10 月 23 日一列,三檔成交量皆為 0、價格與前一天相同。
- 成交量 57 筆與證交所公布的數字都不同,收盤價可用,成交量不直接引用。
- 結論: 抓日收盤價很省事,但抓完要先對交易日、刪掉零成交量的列,成交量不直接引用。
- 適合: 要把幾檔公開價格整理進報告、願意跑 Python 的人
- 不適合: 需要逐筆精確成交量,或完全不想寫程式的人
| 實測項目 | 結果 |
|---|---|
| 安裝時間 | 約 11 秒 |
| 下載列數 | 20 列(三檔、2026 年 10 月) |
| 證交所交易日數 | 19 天 |
| 收盤價對照 | 57 筆全部相同 |
| 成交量對照 | 57 筆皆不同 |
| 多出的一列 | 10/23,三檔成交量皆為 0 |
月底要交一份報告,裡面得放三檔股票這個月的收盤價。一檔一檔打開網頁複製很花時間,換個月又得重來。yfinance 是 GitHub 上很多人用的開源 Python 套件,輸入股票代號和日期,就能一次把價格抓成表格。這篇照順序記錄我怎麼裝、怎麼設定、跑出什麼,並把結果拿去跟證交所公開資料對照。
測試設備:Mac mini M4 Pro(12 核、64GB)。測試版本:yfinance 1.7.0(Apache-2.0 授權),Python 3.12。示範代號 2330、2317、2454 只是輸入示範,不代表任何建議。本文示範資料是證交所公開資料,資料日期為 2026-10-30 收盤後。
下載
需要 Python 3.10 以上(我用 3.12)。從原始碼安裝:
git clone https://github.com/ranaroussi/yfinance
cd yfinance
pip install -e .
安裝約 11 秒,會一併裝好 pandas、numpy、requests 等相依套件。想直接用 PyPI 版本,也可以 pip install yfinance。
設定
不需要註冊或金鑰。台股代號在後面加 .TW(上市)就能用,例如台積電是 2330.TW。日期用 start、end,其中 end 不含當天,所以要抓到 10 月 30 日,end 要寫 10 月 31 日。
為了跟證交所對照,我還用 requests 抓證交所公開的個股日成交資訊(STOCK_DAY),這段是我自己寫的比對腳本,不是 yfinance 的功能。
跑起來
先一次抓三檔,只取收盤價並存成 CSV:
import yfinance as yf
df = yf.download(['2330.TW','2317.TW','2454.TW'],
start='2026-10-01', end='2026-10-31',
auto_adjust=False, progress=False)
close = df['Close']
close.to_csv('close.csv')
print(len(close))
輸出是 20 列、三個欄位的表格,close.csv 可以直接貼進報告或試算表。

接著把同一份資料跟證交所 10 月的個股日成交資訊逐筆對照:
| 項目 | 證交所 | yfinance |
|---|---|---|
| 10 月交易日數 | 19 | 20 |
| 10/23 | 無資料 | 有一列 |
| 10/23 成交量 | — | 0(三檔都是) |
| 收盤價對照 | 57 筆 | 全部相同 |

收盤價三檔、十九個交易日共 57 筆,一筆都沒有差。但表裡多了 10 月 23 日這一列:三檔成交量都是 0,收盤價跟 10 月 22 日完全一樣。
常見問題
表為什麼比證交所多一天? 我只確認到:yfinance 回傳的表有 10/23,證交所公開資料沒有這天,且三檔成交量都是 0、價格照抄前一天。我沒有查出原因,所以不下結論。
多出來的一列會怎樣? 如果拿去做圖或算平均,這一天會被多算一次。我的做法是抓完先對一次交易日,把成交量為 0 的列刪掉再存檔:
close = close[(df['Volume'] > 0).all(axis=1)]
成交量能直接用嗎? 這次對照的 57 筆成交量跟證交所公布的數字沒有一筆相同。收盤價我放心用,成交量我不直接引用;需要成交量時,建議用證交所公開資料。
終端機跳出一堆 Pandas4Warning? 這是 pandas 3.x 對套件內部寫法的棄用警告,不影響結果。範例中用 python3 -W ignore 隱藏。
沒測的部分: 只測了三個示範代號、一個月的日資料;沒測分鐘線、上櫃(.TWO)、配息調整價、財報資料,也沒測長期穩定性。
結論
這個工具抓日收盤價很省事:幾行就把三檔變成一張表、存成 CSV。但抓下來的表不要直接當成標準答案:先跟交易日對一次、刪掉零成交量的列,成交量也不直接引用。適合要把幾檔公開價格整理進報告、願意跑 Python 的人;不適合要逐筆精確成交量、或完全不想寫程式的人。
專案:https://github.com/ranaroussi/yfinance(Apache-2.0)