无法将文件读入股票代码列表,然后获取每个文件的 yfinance 数据

Cannot get a file to be read into a list of stock tickers and then get yfinance data for each

我正在尝试将 csv 文件读入数据帧,然后遍历每个代码以获取一些雅虎金融数据,但我很难匹配从 CSV 文件读取的正确数据类型。问题是 yfinance 需要一个 str 作为 ticker 参数 data = yf.download("AAPL', start ="2019-01-01", end="2022-04-20") 而且我无法将 df 行项目转换为 str.

这是我的代码:


combined = yf.download("SPY", start ="2019-01-01", end="2019-01-02")
  

for index, row in stockslist.iterrows():
            
    data = yf.download([index,row["ticker"].to_string], start ="2019-01-01", end="2022-04-20") 

这是 csv 文件

问题基本上是关于这部分代码“ [index,row["ticker"].to_string] ”。我无法将数据框的每一行作为一个自动收报机参数传递给财务。 我得到的错误是“TypeError: expected string or bytes-like object”

download 函数不理解 [index,row["ticker"].to_string] 参数。比如它来自哪里?

你必须给出它的上下文。就像使用 CSV 中的值构建数组一样,然后将 array[i].value 传递给 download 函数。

虚构代码的简单示例:

#initiate the array with the ticker list
array_ticker = ['APPL''MSFT''...'] 

#reads array + download
for i=0 in range(array_ticker.size):      
     data = yf.download(array_ticker[i], start ="2019-01-01", end="2022-04-20")
     i=i+1

更新:

如果您想保留现在使用的数据框,我只是做了一个简单的代码来帮助您解决问题:

import pandas as pd

d = {'ticker': ['APPL', 'MSFT', 'GAV']}
ticker_list = pd.DataFrame(data=d) #creating the dataframe
print(ticker_list) #print the whole dataframe
print('--------')
print(ticker_list.iloc[1]['ticker']) #print the 2nd value of the column ticker

同一主题:How to iterate over rows in a DataFrame in Pandas