You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过yfinance获取股票历史市值?有无替代Python工具?

解决yfinance无法获取历史市值的方案及替代工具

一、用yfinance间接计算历史市值

yfinance确实没有直接提供历史市值的API,但可以通过历史股价 × 对应时期的流通股数间接计算,步骤如下:

  1. 获取目标时间段的历史股价数据
  2. 获取同期的历史流通股数数据
  3. 合并两者计算市值

代码示例:

import yfinance as yf
import pandas as pd

ticker = yf.Ticker('AAPL')

# 获取过去4年的历史调整后收盘价
hist_price = ticker.history(period='4y')['Close']

# 获取对应时间段的历史流通股数
hist_shares = ticker.get_shares_full(start=hist_price.index[0], end=hist_price.index[-1])

# 合并数据并填充空缺(流通股数不会频繁变动)
merged_data = pd.merge(
    hist_price, hist_shares, 
    left_index=True, right_index=True, 
    how='left'
).ffill()

# 计算历史市值
merged_data['MarketCap'] = merged_data['Close'] * merged_data['Shares']
print(merged_data['MarketCap'])

二、替代yfinance的Python工具

如果需要更直接的历史市值数据,这些工具更适配需求:

  • Alpha Vantage:提供免费的历史市值API,通过TIME_SERIES_DAILY_ADJUSTED接口可获取含市值的每日数据,免费版有调用次数限制,适合小批量查询。
  • Polygon.io:数据精度高,支持多资产类型,有专门的历史市值接口,免费版提供基础数据,付费版解锁更多高级功能。
  • pandas-datareader:可对接Yahoo Finance、Alpha Vantage等多个数据源,封装简洁,适合和pandas生态结合,获取历史市值时可通过计算或对接对应数据源接口实现。

内容的提问来源于stack exchange,提问作者rulf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:52:08