【发布时间】:2017-09-22 00:28:05
【问题描述】:
我遇到了一个小问题。我有一个带有“NaN”值和双精度值的 .csv(例如 0.6034),我试图将 CSV 的双精度值读入数组 [y] [x]。
目前,我阅读了整个 .csv,但之后我无法删除所有“NaN”值。 (它应该通过 CSV 解析,只需将数字添加到数组 [y] [x] 并保留所有“NaN”)
我当前的代码:
var rows = File.ReadAllLines(filepath).Select(l => l.Split(';').ToArray()).ToArray(); //reads WHOLE .CSV to array[][]
int max_Rows = 0, j, rank;
int max_Col = 0;
foreach (Array anArray in rows)
{
rank = anArray.Rank;
if (rank > 1)
{
// show the lengths of each dimension
for (j = 0; j < rank; j++)
{
}
}
else
{
}
// show the total length of the entire array or all dimensions
max_Col = anArray.Length; //displays columns
max_Rows++; //displays rows
}
我尝试了搜索,但找不到任何对我有帮助的东西。 我知道这可能很容易,但我是 C# 新手。
.CSV 和期望的结果:
NaN;NaN;NaN;NaN
NaN;1;5;NaN
NaN;2;6;NaN
NaN;3;7;NaN
NaN;4;8;NaN
NaN;NaN;NaN;NaN
这是我拥有的示例 .csv。我应该更清楚,对不起!每行都有一个 NaN。我希望它像这样显示:
1;5
2;6
3;7
4;8
这只是 .csv 的一个示例,真正的 csv 大约有 60.000 个值...我需要使用 [y][x] 获取输入,例如 [0][0] 应该显示“1”和 [ 2][1] 应该显示“7”等等。
再次感谢您的帮助!
【问题讨论】:
-
顺便说一句,我永远不会敢于制作自己的 CSV 解析器。解决许多极端情况 (e.g.),IMO。
-
@Uwe Keim:我同意你的观点,一般情况 CSV 看起来很复杂;但是,当 CSV 源 已知 时(例如,我自己的例程从 RDMBS 导出数据以供将来分析)或在一次性软件的情况下(我想要的只是删除不完整的行并执行线性回归在提供的 CSV 上)我会更加放纵。