Создание нескольких фреймов данных с помощью программы чтения данных pandas в цикле

#python #pandas #yahoo-finance #pandas-datareader

#python #pandas #yahoo-финансы #pandas-datareader

Вопрос:

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

Brazilian_stock_list = ['AALR3.SA','ABCB4.SA','ALSO3.SA','ALUP11.SA','AMAR3.SA','ANIM3.SA', ....]

Я хочу создать фрейм данных для каждой записи в приведенном выше списке.

  • Что я пытался сделать без успеха:
 for stock in Brazilian_stock_list:
     exec('{} = pdr.get_data_yahoo()'.format(stock))
 
  • Я также пытался удалить «.SA» из каждой записи приведенного выше списка, но это тоже не работает:
 Brazilian_stock_list_2 = [stock.replace('.SA', '') for stock in Brazilian_stock_list]

for stock in Brazilian_stock_list:
    ('{}'.format(stock1) for stock1 in Brazilian_stock_list_2) = 'pdr.get_data_yahoo()'.format(stock) 
 

Заранее благодарю вас за любую помощь, которую вы мне предоставляете.

Ответ №1:

Я понимаю, что вы хотите получить значения OHLC нескольких запасов во фрейме данных, поэтому я предлагаю следующий код. Несколько запасов могут быть получены одновременно путем объединения проблем с запасами с пробелами.

 import yfinance as yf

Brazilian_stock_list = 'AALR3.SA ABCB4.SA ALSO3.SA'

data = yf.download(Brazilian_stock_list, start="2020-11-01", end="2020-11-30")

data.head()
           Adj Close         Close           High         Low         Open  Volume
    AALR3.SA    ABCB4.SA    ALSO3.SA    AALR3.SA    ABCB4.SA    ALSO3.SA    AALR3.SA    ABCB4.SA    ALSO3.SA    AALR3.SA    ABCB4.SA    ALSO3.SA    AALR3.SA    ABCB4.SA    ALSO3.SA    AALR3.SA    ABCB4.SA    ALSO3.SA
Date                                                                        
2020-11-03  10.24   12.70   22.379999   10.24   12.70   22.379999   10.41   12.70   23.700001   9.85    12.39   22.219999   9.89    12.39   23.490000   470000  605000  1533600
2020-11-04  10.57   12.61   23.459999   10.57   12.61   23.459999   10.57   12.86   23.510000   10.09   12.47   22.400000   10.38   12.86   22.549999   341600  712800  1162900
2020-11-05  10.88   12.77   24.420000   10.88   12.77   24.420000   11.00   12.89   24.500000   10.60   12.60   23.680000   10.67   12.73   23.809999   333600  723800  3193900
2020-11-06  11.08   12.63   25.030001   11.08   12.63   25.030001   11.13   12.96   25.110001   10.64   12.55   23.790001   10.64   12.71   24.219999   310800  717600  1061000
2020-11-09  11.08   13.31   27.820000   11.08   13.31   27.820000   11.53   13.53   27.900000   11.01   13.05   26.530001   11.43   13.15   27.000000   434900  1084000     3779300