Javascript/D3.JS-将CSV列项目转换为JS列表

Javascript/D3.JS-将CSV列项目转换为JS列表,javascript,csv,d3.js,Javascript,Csv,D3.js,我有包含4个字段的CSV文件: 地址、经度、纬度、几何图形 1,2,3,4 5,6,7,8 我想创建一个只选择“几何体”字段的列表 这给了我们全部的清单吗 d3.csv("file.csv", function(collection) { .. var mydata=collection.geometry; .. }); 假设您有一个http服务器服务于包含以下两个文件的目录: 您可以定义自定义函数来解析行的字段。基准对象包含一行中相应字段的所有值。只需访问数据的字段名,即可返回其属性映

我有包含4个字段的CSV文件:

地址、经度、纬度、几何图形
1,2,3,4 5,6,7,8

我想创建一个只选择“几何体”字段的列表

这给了我们全部的清单吗

d3.csv("file.csv", function(collection) {
..

var mydata=collection.geometry;

..
});

假设您有一个http服务器服务于包含以下两个文件的目录:

您可以定义自定义函数来解析行的字段。基准对象包含一行中相应字段的所有值。只需访问数据的字段名,即可返回其属性映射到行内值的对象

因此,您可以如下定义您的函数

示例CSV:

field1,field2,field3
value1,value2,value3
value4,value5,value6
您可以传递的匿名函数:

function(datum,index)
{
    var collectionObject = {};
    collectionObject.someFieldName  = datum.field2,
    collectionObject.anotherFieldName = datum.field3

    return collectionObject;
}
在您的情况下,您可以执行以下操作:

test.csv

address,longitude,latitude,geometry
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
index.html

<!DOCTYPE html>
<meta charset="utf-8">

<head>

</head>
<body>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
  <script>

    var csv =  d3.csv("test.csv", function(d) 
        {
          return {geometry : d.geometry};
        }, 
        function(error, rows) 
        {
            console.log(rows);
        });

    console.log(csv);
  </script>
</body>
</html>

var csv=d3.csv(“test.csv”,函数(d)
{
返回{geometry:d.geometry};
}, 
函数(错误,行)
{
console.log(行);
});
console.log(csv);

假设您有一个http服务器为包含以下两个文件的目录提供服务:

您可以定义自定义函数来解析行的字段。基准对象包含一行中相应字段的所有值。只需访问数据的字段名,即可返回其属性映射到行内值的对象

因此,您可以如下定义您的函数

示例CSV:

field1,field2,field3
value1,value2,value3
value4,value5,value6
您可以传递的匿名函数:

function(datum,index)
{
    var collectionObject = {};
    collectionObject.someFieldName  = datum.field2,
    collectionObject.anotherFieldName = datum.field3

    return collectionObject;
}
在您的情况下,您可以执行以下操作:

test.csv

address,longitude,latitude,geometry
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
"This","is","an","example"
index.html

<!DOCTYPE html>
<meta charset="utf-8">

<head>

</head>
<body>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
  <script>

    var csv =  d3.csv("test.csv", function(d) 
        {
          return {geometry : d.geometry};
        }, 
        function(error, rows) 
        {
            console.log(rows);
        });

    console.log(csv);
  </script>
</body>
</html>

var csv=d3.csv(“test.csv”,函数(d)
{
返回{geometry:d.geometry};
}, 
函数(错误,行)
{
console.log(行);
});
console.log(csv);

如果几何图形是csv文件中的一列,则不能直接从
d3.csv
函数的结果中选择它。d3表格读取函数创建的数据对象是一个对象数组,表示csv文件的每一行

所以对于csv文件 地址、经度、纬度、几何图形 123主街,90,50,几何柱A 22百老汇,92,51,几何弦B

输出是

[
 { "Address":"123 Main St", 
   "longitude":"90",  
   "latitude":"50",  
   "geometry":"geometry string A"},
 { "Address":"22 Broadway",  
   "longitude":"92",  
   "latitude":"51",  
   "geometry":"geometry string B"}
]
要获取仅包含几何体字符串的单个数组,可以使用

现在,
mydata
是一个字符串数组,仅表示csv文件的“几何体”列


顺便说一句,我刚看到阿雷特的回答。其工作方式大致相同,只是映射在读取文件的同时完成,并且只将一列传递给回调函数。(但请注意,它仍然作为对象数组返回,而不是字符串数组。)


如果您不使用文件中的任何其他数据,那么对于大型数据集,这可能会稍微快一点。但是,使用此版本,如果程序的其他部分需要,您仍然可以访问完整的数据集合。

如果几何体是csv文件中的一列,则不能直接从
d3.csv
函数的结果中选择它。d3表格读取函数创建的数据对象是一个对象数组,表示csv文件的每一行

所以对于csv文件 地址、经度、纬度、几何图形 123主街,90,50,几何柱A 22百老汇,92,51,几何弦B

输出是

[
 { "Address":"123 Main St", 
   "longitude":"90",  
   "latitude":"50",  
   "geometry":"geometry string A"},
 { "Address":"22 Broadway",  
   "longitude":"92",  
   "latitude":"51",  
   "geometry":"geometry string B"}
]
要获取仅包含几何体字符串的单个数组,可以使用

现在,
mydata
是一个字符串数组,仅表示csv文件的“几何体”列


顺便说一句,我刚看到阿雷特的回答。其工作方式大致相同,只是映射在读取文件的同时完成,并且只将一列传递给回调函数。(但请注意,它仍然作为对象数组返回,而不是字符串数组。)


如果您不使用文件中的任何其他数据,那么对于大型数据集,这可能会稍微快一点。但是,使用此版本,如果您的程序的其他部分需要完整的数据集合,您仍然可以访问它。

要从对象列表中提取单个属性,您可以使用
映射
方法,如下所示:

var temp = "Address,longitude,latitude,geometry\n"+
"1,2,3,4\n5,6,7,8\n2,3,4,5\n6,7,8,9";

var t = d3.csv.parse(temp);
console.log(t.map(function(d){return d.geometry;}));

要从对象列表中提取单个属性,可以使用
map
方法,如下所示:

var temp = "Address,longitude,latitude,geometry\n"+
"1,2,3,4\n5,6,7,8\n2,3,4,5\n6,7,8,9";

var t = d3.csv.parse(temp);
console.log(t.map(function(d){return d.geometry;}));

如何将我的.csv文件直接加载到
var temp
d3.parse(“data.csv”,function(data){temp=data;})
这就是您想要知道的吗?如何将我的.csv文件直接加载到
var temp
d3.parse(“data.csv”,function(data){temp=data;})