我想从yfinance获取特定股票列表的历史数据。我想将earch存储在一个单独的数据帧中(每个存储都有自己的df)
我可以通过下面的代码将其下载到多个csv,但我找不到一种方法将它们存储在不同的数据帧中(而不必将它们下载到csv)
import yfinance
stocks = ['TSLA','MSFT','NIO','AAPL','AMD','ADBE','ALGN','AMZN','AMGN','AEP','ADI','ANSS','AMAT','ASML','TEAM','ADSK']
for i in stocks:
df = yfinance.download(i, start='2015-01-01', end='2021-09-12')
df.to_csv( i + '.csv')
我希望我的最终结果是一个称为“TSLA”的数据帧,用于TSLA历史数据,另一个称为“MSFT”的数据帧,用于MSFT数据……等等
我试过:
stock = ['TSLA','MSFT','NIO','AAPL','AMD']
df_ = {}
for i in stock:
df = yfinance.download(i, start='2015-01-01', end='2021-09-12')
df_["{}".format(i)] = df
我必须按键调用每个数据帧来获得它,就像df_["TSLA"]
,但这不是我想要的。我需要一个名为仅TSLA的datafram,它有TSLA数据等等。有办法吗
您可以创建全局或局部变量,如
但坦率地说,这是浪费时间。把它作为字典保存更有用
使用dictionary,您可以使用
for
-loop在所有数据帧上运行一些代码。您还可以按名称选择数据帧。等等
示例:
您不需要多次下载数据。您只需使用
groupby
分割整个数据,并使用locals()
动态创建变量:输出:
相关问题 更多 >
编程相关推荐