Javascript 我可以用D3标准化CSV数据吗?
我的原始CSV中有此类数据:Javascript 我可以用D3标准化CSV数据吗?,javascript,csv,d3.js,Javascript,Csv,D3.js,我的原始CSV中有此类数据: id, lat, long, data_type_1, data_type_2, data_type_3 1 , 50, 1, 10, 20, 40 我需要把它转换成这种结构: id, lat, long, data_type, value, 1 , 50, 1, 1, 10, 1 , 50, 1, 2, 20, 1 , 50, 1, 3, 4
id, lat, long, data_type_1, data_type_2, data_type_3
1 , 50, 1, 10, 20, 40
我需要把它转换成这种结构:
id, lat, long, data_type, value,
1 , 50, 1, 1, 10,
1 , 50, 1, 2, 20,
1 , 50, 1, 3, 40,
我看了devdocs一、两年了
我得到了这个代码,从这个页面中删减/修改
当我处理完数据后,它会打印一行,但是为了使我的数据正常化,我需要将其“扩展”为多行,而我无法弄清楚如何做。我想不出如何使用map
、filter
或reduce
。。。。如果有什么我想要的相反的减少
如何实现这一点?您可以使用内置的
map
和reduce
功能来实现这一点,无需D3,如下所示:
rows.map(row => {
const { id, lat, long, data_type_1, data_type_2, data_type_3 } = row
return [
{
id, lat, long,
data_type: '1',
value: data_type_1
},
{
id, lat, long,
data_type: '2',
value: data_type_2
},
{
id, lat, long,
data_type: '3',
value: data_type_3
}
]
}).reduce((prev, next) => prev.concat(next), [])
long
作为保留字,此代码无法完全工作。但是应该给你正确的想法。你需要将CSV中的每条记录转换为3条记录(每种数据类型一条记录。你想要push()
将它们放入一个新的数据数组中,并在应用程序中使用该数组visualization@genestd在csv函数或回调函数中?如果它在csv函数中,我将以嵌套数组结束…在回调函数中执行此操作,然后将新变量作为(数据)传递到stratify()
函数中
Yep,它不包含任何解析csv的代码。它希望它已经被解析为一个对象列表,其中键是列标题
rows.map(row => {
const { id, lat, long, data_type_1, data_type_2, data_type_3 } = row
return [
{
id, lat, long,
data_type: '1',
value: data_type_1
},
{
id, lat, long,
data_type: '2',
value: data_type_2
},
{
id, lat, long,
data_type: '3',
value: data_type_3
}
]
}).reduce((prev, next) => prev.concat(next), [])