Пусть цикл for возвращает фрейм данных, когда он создает строку

#python #pandas #list #loops #yfinance

Вопрос:

У меня есть список тикеров, для которых мне нужно получить имя. Я пытаюсь написать цикл, который возвращает фрейм данных, содержащий Short_Name и tic имя.

Код ниже:

 a = [] b = ['FFIV', 'FIS', 'FISV', 'FITB', 'FLS', 'FMC']  for i in b: #add 5 rows of data  stock = yf.Ticker(i)  a['Short_Name'] = stock.info['shortName']  a['tic'] = i   

К сожалению, когда я запускаю этот код, я получаю следующую ошибку:

 TypeError: list indices must be integers or slices, not str  

Любая помощь была бы фантастической.

Ответ №1:

Используйте это:

 a = [] b = ['FFIV', 'FIS', 'FISV', 'FITB', 'FLS', 'FMC']  for i in b: #add 5 rows of data  stock = yf.Ticker(i)  a.append([stock.info['shortName'], i])  df = pd.DataFrame(data=a, columns=['Short_Name', 'tic'])