Python Yahoo Finance多字段数据获取代码优化咨询
批量获取Yahoo Finance股票字段的优雅实现方式
你当前多次调用web.get_quote_yahoo()逐个拉取字段的写法既冗余,还会增加不必要的接口请求次数。其实只需要单次调用接口,再通过Pandas的列筛选功能,就能一次性拿到所有指定字段并保留列名,代码更简洁高效。
优化后的代码示例
import pandas_datareader as web tickers = ["AAPL", "GOOG", "RY", "SAB.MC"] # 把需要的字段都列在这里,按需添加或删除 target_fields = [ 'marketCap', 'trailingPE', 'fiftyTwoWeekLowChangePercent', 'regularMarketPrice', # 可继续添加更多需要的字段 'forwardPE' ] # 单次请求获取全量数据,直接筛选目标字段 stock_data = web.get_quote_yahoo(tickers)[target_fields] # 直接打印带列名的完整表格 print(stock_data) # 如果需要逐行遍历输出 for ticker, data_row in stock_data.iterrows(): print(f""" {ticker} 数据: - 市值:{data_row['marketCap']} - 静态市盈率:{data_row['trailingPE']} - 52周低点涨跌幅:{data_row['fiftyTwoWeekLowChangePercent']} """)
这种写法的优势
- 减少请求次数:避免重复调用接口,降低网络开销和请求被限制的风险
- 保留清晰结构:返回的是Pandas DataFrame,自带字段名,数据可读性强,方便后续分析或导出
- 扩展性强:要新增字段只需在
target_fields列表里添加对应名称,无需修改请求逻辑
内容的提问来源于stack exchange,提问作者Artrade
相关产品推荐
相关产品推荐

