繁体   English   中英

在具有多个csv文件的数据存储区中尾随行

[英]Trailing rows in datastore with multiple csv files

Matlab 2015b

我有几个大(100-300MB)的csv文件,我想合并为一个并过滤掉某些列。 它们的形状如下:

timestamp         | variable1 | ... | variable200
01.01.16 00:00:00 | 1.59      | ... | 0.5
01.01.16 00:00:01 | ...
.
.

对于此任务,我使用的是一个包含所有csv文件的数据存储类:

ds = datastore('file*.csv');

当我读取所有条目并尝试使用writetable将它们写回到csv文件时,出现错误,输入必须是单元格数组。

在以调试模式查看从数据存储读取的单元格数组时,我注意到有几行仅包含时间戳,而这些行不在原始文件中。 这些列位于文件的最后一行和下一个文件的第一行之间。 该行的时间戳是最后一个时间戳的逻辑延续(就像您使用excel一样)。

这是错误还是预期的行为?

我可以先避免读这些行吗,还是之后必须将其过滤掉?

提前致谢。

似乎没有其他人遇到这个问题,我将分享最后的处理方式:

toDelete = strcmp(data.(2), '');
data(toDelete, :) = [];

我使用了表格的第二列,并检查了一个空字符串。 之后,我通过逻辑索引用一个空数组填充了所有错误行。 (如Matlab文档中所示)

遗憾的是,我没有找到防止加载错误数据的方法,但是最后,要在内存中执行此处理步骤,数据量并不大。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM