Wolfram mathematica 使用列表中的列表作为Wolfram Alpha的输出打印网格

Wolfram mathematica 使用列表中的列表作为Wolfram Alpha的输出打印网格,wolfram-mathematica,wolframalpha,wolfram-language,Wolfram Mathematica,Wolframalpha,Wolfram Language,我已经在Wolfram Mathematica中作为Wolfram Alpha查询执行了这条指令 a = WolframAlpha[ "italy vs england coffee consumption", \ {{"History:AgricultureConsumption:AgricultureData", 1}, "ComputableData"}] 在“a”中存储了我感兴趣的数据 问题是: 我如何才能输出仅包含重要数据的网格,如每年的“日期”和“音调/年份”

我已经在Wolfram Mathematica中作为Wolfram Alpha查询执行了这条指令

a = WolframAlpha[
  "italy vs england coffee consumption", \
    {{"History:AgricultureConsumption:AgricultureData", 1}, 
   "ComputableData"}]
在“a”中存储了我感兴趣的数据

问题是: 我如何才能输出仅包含重要数据的网格,如每年的“日期”和“音调/年份”

一个比较意大利和英国咖啡消费量的简单表格,按日期排序

date | italy | england
----------------------
1961 | 11111 | 2222222
1962 | 11112 | 2222223
....
...
..
.

表输出

TableForm[{#1[[1, 1]], #1[[2, 1]], #2[[2, 1]]} & @@@ c,
 TableHeadings -> {None, {"Year", "Italy", "England"}}]

使用WolframAlpha函数的替代方法是使用EntityValue:

DateListPlot@EntityValue[
    {Entity["Country","Italy"],Entity["Country","UnitedKingdom"]},
    EntityProperty["Country","AgricultureConsumption", {"AgricultureProduct"->"Coffee","Date"->All}]
]

为完整起见,以下是如何直接使用问题的结果:

a = WolframAlpha[
  "italy vs england coffee consumption", \
{{"History:AgricultureConsumption:AgricultureData", 1}, 
   "ComputableData"}]
注:可通过
DateListPlot
直接使用:

DateListPlot[a]

确认两个数据集的日期相同:

a[[1, All, 1]] == a[[2, All, 1]]
真的

现在进入下表:

TableForm[
  MapThread[{DateString[#1[[1]], "Year"], 
    Sequence @@ ((Round@QuantityMagnitude[#[[2]]]) & /@ {##})} &, a], 
    TableHeadings -> {None, {"Year", "Italy", "England"}}]


注意,这依赖于一点信念,即alpha按照问题中提出的顺序提供结果。其他方法可能更可靠。

非常感谢@Chris。
TableForm[
  MapThread[{DateString[#1[[1]], "Year"], 
    Sequence @@ ((Round@QuantityMagnitude[#[[2]]]) & /@ {##})} &, a], 
    TableHeadings -> {None, {"Year", "Italy", "England"}}]