如何从yfinance拉取多只股票历史数据,生成对应命名独立dataframe无需导出CSV
实现动态生成股票代码对应DataFrame变量的方法
你可以通过Python内置的globals()函数实现需求,该函数会返回当前全局作用域的变量字典,直接将股票代码作为键、对应的DataFrame作为值存入,即可直接通过股票代码作为变量名访问数据。
完整实现代码
import yfinance stocks = ['TSLA','MSFT','NIO','AAPL','AMD','ADBE','ALGN','AMZN','AMGN','AEP','ADI','ANSS','AMAT','ASML','TEAM','ADSK'] for ticker in stocks: globals()[ticker] = yfinance.download(ticker, start='2015-01-01', end='2021-09-12')
运行完成后,你直接输入TSLA、MSFT就能调用对应股票的DataFrame,符合你预期的使用效果。
注意事项
- 如果后续使用的股票代码包含Python变量名不允许的字符(比如
-、.、数字开头等),会生成不合法的变量名无法直接调用,这类场景更推荐你之前使用的字典存储方案,稳定性更高。 - 从批量处理的效率角度,字典存储的方案更适合工程实践:当你需要对所有股票数据执行统一的清洗、计算操作时,直接遍历字典即可,不需要硬编码每个变量名,维护成本更低。
内容的提问来源于stack exchange,提问作者Sam.H
相关产品推荐
相关产品推荐

