从URL导入数据

时间:2012-01-03 22:58:53

标签: wolfram-mathematica mathematica-8

圣路易斯联邦储备银行在各种网页上提供了大量数据,例如:

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文件格式访问)直接导入Mathematica。

我查看了有关导入[]的文档,但我找不到关于如何进行此类操作的文档(实际上没有)。

看起来我需要导航到页面,发送一些数据来选择特定的文件和格式,触发下载,然后从我自己的机器访问下载的数据。如果我可以直接从站点访问数据,那就更好了。

我曾希望Wolfram Alpha可以轻松做到这一点,但我没有取得任何成功。

对于这类事情来说,{p> FinancialData[]似乎很自然,但我无论如何也看不到这样做。财务数据有很多功能,但我没有看到你得到这种东西的方式。

有没有人有这方面的经验,或者有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:19)

您可以直接从网址Import。例如,来自federalreserve.gov的数据可以获得并可视化如下。

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来访问它。

答案 1 :(得分:12)

正如Mark所说,您可以直接从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行中的标题文本(您必须计算标题行以了解要删除的标题行数)。我还指定了日期格式。

要查找该网址,请按照之前的操作进行操作,但点击数据系列,然后在看到图表时从左侧菜单中选择查看数据。

答案 2 :(得分:5)

文档中有一个从网页中提取数据的简短示例:

http://reference.wolfram.com/mathematica/howto/CleanUpDataImportedFromAWebsite.html

当然,实际需要做的事情因页面而异。

答案 3 :(得分:4)

讨论如何使用API​​密钥执行此操作:

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

该功能基于API文档。我几年没有看过代码,而且从记忆中我把它快速地放在一起,但我已经定期使用它超过2年没有问题。以下是从1992年初到现在每月非经季节性调整的零售业的例子:

enter image description here

wolfram alpha也使用FRED数据,因此您可以将其用作直接导入的替代方法,但使查询正确起来更为棘手。我更喜欢直接使用FRED。同样来自内存的数据仅在发布后的第二天可用于alpha,这不是您通常想要的。

enter image description here