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

如何使用Python yfinance库获取股票最新收盘价并输出为float类型

解决方案

报错的根本原因是yf.download返回的是包含多列、多行时间序列数据的DataFrame对象,无法直接强制转换为float类型。针对你提出的两个核心问题,处理方案如下:

核心逻辑

  • 提取最新收盘价:yf.download返回的DataFrame行按时间升序排列,最新数据存储在最后一行,只需提取Close列的最后一个值即可
  • 转换为float类型:从DataFrame中提取出的单个收盘价本身为numpy数值类型,直接用float()包裹即可完成类型转换

修正后可运行代码

import yfinance as yf
from datetime import datetime, timedelta
import pandas as pd

pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.max_colwidth', None)

ticker = "tsla"
start = datetime.now() - timedelta(days=2)
end = datetime.now()

price_df = yf.download(ticker, start=start, end=end, interval="1m")
# 提前判断数据是否为空,避免无数据时索引报错
if not price_df.empty:
    # 提取最后一行收盘价,转换为float类型
    latest_close = float(price_df['Close'].iloc[-1])
    print(latest_close)
    # 可打印类型确认输出为float
    # print(type(latest_close))
else:
    print("未获取到对应时间段的股票数据")

关键修改说明

  • 用price_df['Close']提取所有收盘价格的单列序列
  • 用iloc[-1]取序列的最后一个元素,对应最新时间的收盘价
  • 增加空DataFrame校验逻辑,覆盖节假日、交易未开盘等无数据的异常场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:24:03