Python调用yfinance输出行情数据时如何移除显示的Date日期内容
问题说明
使用yfinance库拉取AAPL股票行情、尝试输出最新开盘价时,原执行代码如下:
import yfinance as yf data = yf.download('AAPL') print(data['Open'].tail(1).to_string())
代码运行后会连带输出Date索引列名、对应日期值,输出结果为:
Date Open 2022-06-09 36.849998
需要实现的效果是移除所有Date相关的日期内容,仅保留目标开盘价数值。
实现方案
两种可直接运行的实现方式如下:
- 推荐方案:直接提取数值,跳过字符串格式化环节
data['Open']是pandas中的Series结构,tail(1)返回的是长度为1的子Series,直接用iloc[-1]取最后一行(即最新行情)的存储值即可,打印时不会附带任何索引、列名类的多余内容:
运行后直接输出纯数值结果:import yfinance as yf data = yf.download('AAPL') latest_open = data['Open'].iloc[-1] print(latest_open)36.849998
该写法比调用to_string()的执行效率更高,是pandas取单行值的标准写法 - 备选方案:保留
to_string()调用,通过参数隐藏索引
如果需要沿用to_string()的格式化逻辑,给方法传入index=False参数即可隐藏Date索引相关的所有输出,注意该写法默认会保留Open列名,若不需要列名仍建议使用第一种方案:# 仅隐藏日期索引,输出会保留Open列名 print(data['Open'].tail(1).to_string(index=False))
内容的提问来源于stack exchange,提问作者mansour32
相关产品推荐
相关产品推荐

