【问题标题】:How to rename each dataframe as stock name from yfinance如何从 yfinance 将每个数据框重命名为股票名称
【发布时间】:2021-03-24 11:45:33
【问题描述】:
这是我的代码,但它不起作用。
import pandas as pd
import yfinance as yf
stock_list = ['TSLA','DDOG','NET','MSFT','AAPL']
df_list=[]
for stock in stock_list:
str(stock)_df = yf.download(stock, '2020-01-01')
df_list = df_list.append(df)
非常感谢
【问题讨论】:
标签:
python
pandas
dataframe
yfinance
【解决方案1】:
我不知道你的代码到底应该做什么,但我看到的是:
df_list=[]
for stock in stock_list:
...
df_list = df_list.append(df)
.append() 方法返回 None,因此在循环中将 None 分配给 df_list 是错误的来源。
【解决方案2】:
可以使用列表,但更容易添加股票名称并将数据框链接在一起。
import pandas as pd
import yfinance as yf
stock_list = ['TSLA','DDOG','NET','MSFT','AAPL']
df_list= pd.DataFrame()
for stock in stock_list:
df = yf.download(stock, '2020-03-01')
df['stock'] = stock
df_list = pd.concat([df_list, df], axis=0)
df_list.head()
Open High Low Close Adj Close Volume stock
Date
2020-03-02 142.251999 148.738007 137.334000 148.723999 148.723999 100975000 TSLA
2020-03-03 161.000000 161.395996 143.222000 149.102005 149.102005 128920000 TSLA
2020-03-04 152.792007 153.304001 144.945999 149.899994 149.899994 75245000 TSLA
2020-03-05 144.753998 149.149994 143.613998 144.908005 144.908005 54263500 TSLA
2020-03-06 138.000000 141.399994 136.854004 140.695999 140.695999 63314500 TSLA