无法将文件读入股票代码列表,然后获取每个文件的 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
我正在尝试将 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