我的数据是这种形式。您可以看到第 3 列(如果从 0 开始则为第 2 列)在其值上升到下一个数量级时触及之前的列。以及最后一列中来自未记录的数据输入的工件。
17:10:39 2.039 26.84 4.6371E-9 -0.7$R200$O100
17:10:41 2.082 27.04 4.6334E-9 -0.4
17:10:43 1.980 26.97 4.6461E-9 0.3
17:10:45 2.031 26.87 4.6502E-9 1.0$R200
17:10:47 2.090 27.09 4.6296E-9 0.1
...
18:49:40 1.930226.34 2.8246E-5 7.1
18:49:42 2.031226.04 2.8264E-5 8.2
现在我通过添加“|”手动解决了这一切deliminator 而不是“”,并删除了一些工件,但这很痛苦。
因此,为了将来从同一台机器上获得更大的数据集,有没有关于如何用 python 编写脚本的提示,或者是否有任何基于 linux 的工具已经可以修复这个 csv/make一个新的固定 csv?
最佳答案
在 linux shell 中:
cut -c 1-14 data.csv > DataA
cut -c 15-49 data.csv > DataB
paste DataA DataB | tr -s " " "\t" > DataC
- 将 csv 分成两部分,交叉点是它们接触的地方,同样在第二部分中,我们切掉了添加的不需要的工件。
- 将它们粘贴在一起并更改制表符的分隔符,因为粘贴会添加制表符
现在以防万一我们想坚持使用“|”下一步可能是分隔符
cat DataC | tr -s "\t" "|" > DataFinal
rm DataA DataB DataC
但这纯粹是可选的
关于linux - 清理 CSV(工件和缺少间距),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44662794/