d3 数据解析/转换(从长到宽)

我有一个 csv 格式的数据集:


continents  countries   values

Europe  Germany 20

Europe  France  30

Europe  Spain   40

Asia    Singapore   100

Asia    Japan   300

Asia    China   30

Asia    Tiwan   500

America USA 50

America Canada  35

America Brazil  30

America Equador 14

当我解析它使用d3.csv和map然后将数据看起来像这样:


[

{continents: "Europe", countries: "Germany", values: 20}

{continents: "Europe", countries: "France", values: 30} 

{continents: "Europe", countries: "Spain", values: 40} and so forth. ]

我想要做的是按大洲组将格式转换为宽格式,使数据看起来像这样


[

{continents: "Europe", 

    values: {"Germany" : 20},

            {"France" : 30},

            {"Spain" : 40}},

{continents: "Asia",

    values: {"Singapore" : 100},

            {"Japan" : 300},

            {"China" : 30}}

]    

这就是我目前正在做的事情。


d3.csv("/data/data.csv").then(function(csv) { 

    data = csv.map(function(d) {

        return {

            continents: d.continents,

            countries: d.countries,

            values: +d.values}

    }); 

格式不需要与上面的示例完全相同,但重点是使用属于各自大洲组的国家和值制作键:值对。


谁能告诉我怎么做?


慕的地6264312
浏览 125回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript