Home > Enterprise >  Can't extract index list from yahoo finance
Can't extract index list from yahoo finance

Time:03-27

I'm trying to extract data from yahoo finance indices, but for some reason when I create a list of indices and try to extract it gives an error, but when I extract individually there is no error. When I create a list with stocks the same code normally works.

import pandas_datareader.data as wb
import pandas as pd

tickers = ['^GSPC', '^IXIC', '^GDAXI']

index_data = pd.DataFrame()

for t in tickers:
    index_data[t] = wb.DataReader(t, data_source='yahoo', start='1997-1-1')['Adj Close']

print(index_data.head())

This error: enter image description here

CodePudding user response:

I edit the code to test for a single call like this:

import pandas_datareader.data as wb
import pandas as pd

tickers = ['^GSPC', '^IXIC', '^GDAXI']

index_data = pd.DataFrame()

i = wb.DataReader('^GSPC', data_source='yahoo', start='1997-1-1')['Adj Close']

# for t in tickers:
#     index_data[t] = wb.DataReader(t, data_source='yahoo', start='1997-1-1')['Adj Close']

# print(index_data.head())

print(i)

and get the error message:

Exception has occurred: RemoteDataError
Unable to read URL: https://finance.yahoo.com/quote/^GSPC/history?period1=852091200&period2=1648353599&interval=1d&frequency=1d&filter=history

which tells you that the error is not due the list (this seems to be fine), but from the call to the first item in the list.

CodePudding user response:

I don't know why but the yesterday date (2022-03-25) appears twice.

Fix with:

tickers = ['^GSPC', '^IXIC', '^GDAXI']

data = []
for t in tickers:
    sr = wb.DataReader(t, data_source='yahoo', start='1997-1-1')['Adj Close']
    sr = sr[~sr.index.duplicated()].rename(t)
    data.append(sr)
    
df = pd.concat(data, axis=1)

Output:

>>> df
                  ^GSPC         ^IXIC        ^GDAXI
Date                                               
1997-01-02   737.010010   1280.699951   2820.810059
1997-01-03   748.030029   1310.680054   2863.260010
1997-01-06   747.650024   1316.400024   2890.199951
1997-01-07   753.229980   1327.729980   2876.340088
1997-01-08   748.409973   1320.349976   2904.080078
...                 ...           ...           ...
2022-03-21  4461.180176  13838.459961  14326.969727
2022-03-22  4511.609863  14108.820312  14473.200195
2022-03-23  4456.240234  13922.599609  14283.650391
2022-03-24  4520.160156  14191.839844  14273.790039
2022-03-25  4543.060059  14169.299805  14305.759766

[6512 rows x 3 columns]
  • Related