1

im trying to predict stock market movement but in the start i'm stuck in this error: "TypeError: string indices must be integers"

the code that i have problem with is:

import pandas_datareader as web
df = web.DataReader('AAPL', data_source='yahoo', start='2012-01-01', end='2019-12-17')

TypeError: string indices must be integers
timrau
  • 22,578
  • 4
  • 51
  • 64
alon
  • 13
  • 2
  • It seems like [this question](https://stackoverflow.com/questions/74832296/typeerror-string-indices-must-be-integers-when-getting-data-of-a-stock-from-y) may be closely related – Joshua Voskamp Feb 21 '23 at 20:22

1 Answers1

1

The YahooDailyReader seems to be broken from pandas_datareader. However, you can use yfinance module directly:

import yfinance as yf

df = yf.download('AAPL', start='2012-01-01', end='2019-12-17')

Output:

>>> df
                 Open       High        Low      Close  Adj Close     Volume
Date                                                                        
2012-01-03  14.621429  14.732143  14.607143  14.686786  12.500194  302220800
2012-01-04  14.642857  14.810000  14.617143  14.765714  12.567368  260022000
2012-01-05  14.819643  14.948214  14.738214  14.929643  12.706892  271269600
2012-01-06  14.991786  15.098214  14.972143  15.085714  12.839728  318292800
2012-01-09  15.196429  15.276786  15.048214  15.061786  12.819361  394024400
...               ...        ...        ...        ...        ...        ...
2019-12-10  67.150002  67.517502  66.464996  67.120003  65.655716   90420400
2019-12-11  67.202499  67.775002  67.125000  67.692497  66.215721   78756800
2019-12-12  66.945000  68.139999  66.830002  67.864998  66.384460  137310400
2019-12-13  67.864998  68.824997  67.732498  68.787498  67.286835  133587600
2019-12-16  69.250000  70.197502  69.245003  69.964996  68.438629  128186000

[2002 rows x 6 columns]
Corralien
  • 109,409
  • 8
  • 28
  • 52