【发布时间】:2014-04-23 09:40:26
【问题描述】:
我需要一个脚本来读取一个 csv 文件(orig.csv)并输出一个重新格式化的 csv 文件(format.csv)
原始 csv 文件将如下所示:
Time,Label,frame,slot,SSN,Board,BT,SRN,LabelFrame,SRNAME,LabelID,Integrity,MAX_val
2014-03-17,lableA,1,8,0,,SPUB,1,NNN,NNN,1,100%,60
2014-03-17,lableA,2,22,0,,GOUC,2,NNN02,NNN02,1,100%,
2014-03-17,lableB,2,8,0,,CCCB,2,NNN02,NNN02,1,100%,59
2014-03-17,lableB,1,2,4,,CCCB,1,NNN,NNN,1,100%,48
2014-03-17,lableB,1,0,6,,CCCB,1,NNN,NNN,1,100%,59
2014-03-17,lableC,2,6,0,,SCUA,2,NNN02,NNN02,1,100%,55
2014-03-17,lableD,2,4,1,,CCCB,2,NNN02,NNN02,1,100%,59
2014-03-17,lableD,0,2,7,,CCCB,0,MPS,MPS,1,100%,46
2014-03-17,lableD,1,4,3,,CCCA,1,NNN,NNN,1,100%,43
2014-03-17,lableE,2,2,7,,CCCB,2,NNN02,NNN02,1,100%,58
重新格式化将通过 orig csv 文件并从 column2(Label) 中获取所有唯一名称,并从 column 13(MAX_val) 中获取相应的最大值,请参见下面的示例。(EG lableA-E 是有趣的,而对于 lableB,[59,48,59] 的最大值是有趣的)我还希望它尽可能满足动态 orig.csv 文件。
报告的 csv 文件将如下所示:
Time,Label,frame,slot,SSN,Board,BT,SRN,LabelFrame,SRNAME,LabelID,Integrity,MAX_val
2014-03-17,lableA,1,8,0,,CCCB,1,NNN,NNN,1,100%,60
2014-03-17,lableB,2,8,0,,CCCB,2,NNN02,NNN02,1,100%,59
2014-03-17,lableC,2,6,0,,SCUA,2,NNN02,NNN02,1,100%,55
2014-03-17,lableD,2,4,1,,CCCB,2,NNN02,NNN02,1,100%,59
2014-03-17,lableE,2,2,7,,CCCB,2,NNN02,NNN02,1,100%,58
注意:我是脚本新手,所以不确定用什么语言编写它的最佳语言,但我一直在考虑 bash、shell、perl,但对其他人开放。
编辑:: 这就是我提取 csv 数据的方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>D3: Loading data from a CSV file</title>
<script type="text/javascript" src="d3/d3.v3.js"></script>
</head>
<body>
<script type="text/javascript">
d3.csv("XPU max load_format1(XPU load).csv", function(data) {
console.log(data);
});
</script>
</body>
</html>
【问题讨论】:
-
显示用于提取 csv 数据的代码。
-
当多条记录共享相同的 col13 最高值时会发生什么?
-
你的第二个数据行(文件的第三行)有一个空列 13. 这种情况下怎么办?
-
@Aaron 编辑了我的 Q 来回答你
-
@Kenosis 例如[59,59,58] 那么 59 会很有趣