Исправление считывателя данных панды из yahoo Finance с помощью Enthought Canopy

Средство чтения данных pandas из Yahoo Finance в настоящее время не работает, потому что Yahoo изменила URL-адрес, с которого панды использовали для получения данных, Yahoo изменила его с 'http://ichart.yahoo.com/table.csv?... на 'http://ichart.finance.yahoo.com/table.csv?....

Я получаю сообщение об ошибке IOError: after 3 tries, Yahoo! did not return a 200 for url '...'

Итак, я попытался отредактировать data.py в соответствии с этим исправлением, но до сих пор не идет. Я использую pandas 0.12 с Enthought Canopy. Мне нужно что-то компилировать..? требуется ли что-то еще?


person erantdo    schedule 01.01.2014    source источник
comment
Пожалуйста, опубликуйте соответствующую часть вашей трассировки (по крайней мере, URL-адрес от IOError: after 3 tries, Yahoo! did not return a 200 for url '...'). Также будьте более точны в том, что именно вы изменили.   -  person alko    schedule 01.01.2014
comment
хорошо, конечно, я думал, что это просто вопрос о том, как реализовать изменение в файлах пакета. Я отредактирую свой вопрос.   -  person erantdo    schedule 01.01.2014
comment
какой точно URL указан в вашей ошибке?   -  person alko    schedule 01.01.2014
comment
это работает сейчас, после того, как я сбросил Canopy. Должен ли я опубликовать ответ или удалить свой вопрос?   -  person erantdo    schedule 01.01.2014
comment
@erantdo, опубликуй ответ и прими его.   -  person cyborg    schedule 01.01.2014
comment
@cyborg Я не могу, наверное, потому что у меня недостаточно кредитов. Вы можете опубликовать это сами, и я приму это, самое главное для меня, чтобы люди нашли это решение, мне все равно, кто получит признание.   -  person erantdo    schedule 01.01.2014


Ответы (2)


in (при условии, что пользователь использует Enthought Canopy для Windows и он хранится в расположении по умолчанию):

C:\Users\...\AppData\Local\Enthought\Canopy\System\Lib\site-packages\pandas\io

изменить yahoo_URL = 'http://ichart.yahoo.com/table.csv?'

to yahoo_URL = 'http://ichart.finance.yahoo.com/table.csv?'

Сохраните и перезапустите Canopy

person erantdo    schedule 02.01.2014

Вот текущая рабочая версия использования Pandas datareader для получения котировок Yahoo:

from pandas.io.data import DataReader
from datetime import datetime

amd = DataReader('AMD',  'yahoo', datetime(2015,7,1), datetime(2015,7,1))
print(amd['Adj Close'][0])

Имейте в виду, что возвращаемый набор данных представляет собой массив. Вам нужно перечислить указанный массив, чтобы получить данные, либо указав свой индекс, либо с помощью цикла for

Другие клавиши, которые вы можете использовать, — «Открыть», «Закрыть», «Высокий», «Низкий» и «Громкость».

У меня Пандас v0.16.2.

Надеюсь, это поможет!

person DevOops    schedule 20.07.2015