Wolfram mathematica 从URL导入数据

Wolfram mathematica 从URL导入数据,wolfram-mathematica,mathematica-8,Wolfram Mathematica,Mathematica 8,圣路易斯联邦储备银行在其各种网页上提供了大量数据,例如: 数据集得到更新,有些每天更新一次。我倾向于对每日数据感兴趣(参见URL上的上述设置) 我想将这些类型的价格或费率数据流(可通过上述URL以CSV或Excel文件访问)直接导入Mathematica 我已经查看了有关导入[]的文档,但是我发现关于如何进行类似操作的文档很少(实际上没有) 看起来我需要导航到页面,发送一些数据以选择特定的文件和格式,触发下载,然后从我自己的机器访问下载的数据。如果我可以直接从网站上访问数据,那就更好了 我曾

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

数据集得到更新,有些每天更新一次。我倾向于对每日数据感兴趣(参见URL上的上述设置)

我想将这些类型的价格或费率数据流(可通过上述URL以CSV或Excel文件访问)直接导入Mathematica

我已经查看了有关导入[]的文档,但是我发现关于如何进行类似操作的文档很少(实际上没有)

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

我曾希望Wolfram Alpha可以让这类事情变得简单,但我没有取得任何成功

FinancialData[]
对于这类事情来说似乎很自然,但我认为无论如何都不需要这样做。金融数据有很多特点,但我看不出有什么办法可以得到这种东西


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

您可以直接从URL导入
。例如,可以获取来自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=”http://www.federalreserve.gov/datadownload/Output.aspx?";
url=url“rel=H10&series=A660E724C705CEA4 B7BD1D1B85789862&lastObs=&”;
url=url“from=&to=&filetype=csv&label=include&layout=seriescolumn”;
数据=导入[url,“CSV”];
DateListPlot[数据[[7;;]],关联->真]

为了方便起见,我把
url
拆开了,因为它太长了。我必须先检查
数据的内容
,然后才能确切地知道如何绘制它——这通常是必要的步骤。我确信stlouisfed.org上的数据可以以类似的方式获取,但它需要使用带密钥的API来访问。

正如Mark所说,您可以直接从URL获取数据。您的机油数据可以从不同的URL导入:

使用该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,请像以前一样操作,但单击数据系列,然后在看到图表时从左侧菜单中选择“查看数据”。

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


当然,实际需要做的事情每页都会有很大的不同

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

该函数基于API文档。我已经有好几年没有看过代码了,从记忆中我很快就把它组合起来了,但我已经定期使用了两年多,没有出现任何问题。以下是1992年初至今每月非季节性调整零售额的示例:

wolfram alpha还使用FRED数据,因此您可以使用该数据作为直接导入的替代方案,但要获得正确的查询更为棘手。我更喜欢直接使用弗雷德。此外,从内存中,数据仅在发布后的第二天可用,这不是您通常想要的


谢谢你,马克。诀窍似乎是查看页面的源代码并为我需要的数据确定正确的URL。我发现有助于解决此问题的一个例子是
日期列表图
,它实际上使用了1980年以来的机油消耗信息。嗨,马克,回答不错,很高兴看到你回来了@莱昂尼德-我不知道我离开了!有时生活变得忙碌,我没有太多回应,但我经常潜伏。我对rcollyer的Area51计划感到兴奋@在过去的几个月里,我在你的个人资料页面上看到过几次,页面上总是写着“最后一次见面是在2011年9月4日”,这就是为什么我认为你不在。我有自动登录,所以假设每个人都有,这显然是一个错误的假设。另一方面,一个专门的SE Mathematica网站将是非常好的!蒂姆——谢谢你的改进,很高兴一次就完成了所有的格式化工作。@TimMayes我们有一个与mathematica相关的解决方案。如果您可以提交(包括创建Area51帐户)该提案,那就太好了。我们很快就要发布了(只需要再增加大约50个用户)。如果你已经这么做了,我很抱歉so@TimMayes使用API更可取,因为您不需要提前知道要剥离多少行等。您所需要的只是免费的API密钥。它还消除了在使用
Import
@Mike之前首先在FRED网站上查找URL的需要,谢谢。我已经下载了你的笔记本,正在试用。“我想这对我会很有用的。”蒂姆梅耶:不用担心。这本书是在金融用户希望获得更长时间(而不是Tos如何工作)的背景下编写的,这类事情的例子。因此,重点是逐步解决问题。为了尽可能容易地理解,我在函数中使用了与API中相同的选项名称。只记得当我发布上面的代码时。我经常使用它,但是通过AppleScript时间表使用它,所以实际上已经有2年没有看过任何代码了。对于接近投票的人来说,这是关于Mathematica编程的,不是离题的。像这样的投票是有人提议进行选举的原因之一。