Импорт данных из URL-адреса - программирование
Подтвердить что ты не робот

Импорт данных из URL-адреса

В Федеральном резервном банке Сент-Луиса имеется большой набор данных, доступных на различных веб-страницах, например:

http://research.stlouisfed.org/fred2/series/OILPRICE/downloaddata?cid=32217 http://www.federalreserve.gov/releases/h10/summary/default.htm http://research.stlouisfed.org/fred2/series/DGS20

Наборы данных обновляются, некоторые часто, как ежедневно. Я, как правило, интересуюсь ежедневными данными (см. Приведенные выше настройки в URL-адресах)

Я хотел бы импортировать эти потоки данных цены или скорости (доступные как файлы CSV или Excel по указанным выше URL-адресам) непосредственно в Mathematica.

Я просмотрел документацию по Importing [], но нахожу скудную документацию (на самом деле нет) о том, как это сделать.

Похоже, мне нужно перейти на страницы, отправить некоторые данные, чтобы выбрать определенные файлы и форматы, запустить загрузку, затем получить доступ к загруженным данным с моей машины. Еще лучше, если я могу получить доступ к данным непосредственно с сайтов.

Я надеялся, что Wolfram Alpha может сделать это проще, но я не добился успеха.

FinancialData[] казалось бы естественным для такого рода вещей, но я не вижу в любом случае этого. Финансовые данные имеют множество функций, но я не вижу способа получить такие вещи.

Есть ли у кого-нибудь опыт с этим или кто-то может указать мне в правильном направлении?

4b9b3361

Ответ 1

Вы можете Import напрямую с URL-адреса. Например, данные из федерального реестра могут быть получены и визуализированы следующим образом.

url = "http://www.federalreserve.gov/datadownload/Output.aspx?";
url = url<>"rel=H10&series=a660e724c705cea4b7bd1d1b85789862&lastObs=&";
url = url<>"from=&to=&filetype=csv&label=include&layout=seriescolumn";
data = Import[url, "CSV"];
DateListPlot[data[[7 ;;]], Joined -> True]

Я расстался url для удобства, так как он так долго. Мне пришлось исследовать содержимое data, прежде чем я точно узнал, как это сделать - шаг, который обычно необходим. Я уверен, что данные из stlouisfed.org могут быть получены аналогичным образом, но для этого требуется использование API с ключом.

Ответ 2

Как сказал Марк, вы можете получить данные непосредственно из URL-адреса. Данные о нефти можно импортировать с другого URL-адреса, чем у вас:

http://research.stlouisfed.org/fred2/data/OILPRICE.txt

С помощью этого URL-адреса вы можете сделать это:

oil = Import["http://research.stlouisfed.org/fred2/data/OILPRICE.txt",
"Table", "HeaderLines" -> 12, "DateStringFormat" -> {"Year", "Month", "Day"}];
DateListPlot[oil, Joined -> True, PlotRange -> All]

Обратите внимание, что опция "HeaderLines" → 12 удаляет текст заголовка в первых 12 строках (вам нужно подсчитать строки заголовков, чтобы узнать, сколько их нужно удалить). Я также указал формат даты.

Чтобы найти этот URL-адрес, сделайте так, как вы делали это раньше, но щелкните по серии данных, а затем выберите "Просмотреть данные" в меню слева, когда увидите диаграмму.

Ответ 4

обсуждение того, как это сделать с помощью вашего ключа API здесь:

http://library.wolfram.com/infocenter/MathSource/7583/

функция основана на документации API. Я не смотрел код уже пару лет, и из памяти я собрал его довольно быстро, но я использовал его регулярно более 2 лет без проблем. Вот пример ежемесячных розничных продаж с учетом сезонных колебаний с начала 1992 года по настоящее время:

enter image description here

wolfram alpha также использует данные FRED, поэтому вы можете использовать это как альтернативу прямому импорту, но более сложно получить запрос правильно. Я предпочитаю использовать FRED напрямую. Кроме того, из памяти данные доступны только в альфа на день после релиза, чего вы, как правило, не хотите.

enter image description here