我将数据保存为csv格式,但是csv文件包含很多空白行。
如何删除空白行?喜欢来自CSV?
1 7 5.329618927 5.678765376
2 7 3.364469002 4.176536709
3 7 4.214949544 7.205212347
4 7 3.324136778 8.935188439
5 7 4.746355556 3.89335459
1 8 5.312160001 5.65157164
2 8 3.378701171 4.175205323
3 8 4.202770433 7.216973641
4 8 3.32496778 8.924379077
5 8 4.744037125 3.891049294
假设上面的文本是您要导入的文件内容的一个示例(字段之间有多个空格和一些空白行,那么我可能会按以下方式导入它(请注意,这实际上不是一个csv文件) ):
]Dat=: cut;._2 freads 'myfile.txt'
┌─┬─┬───────────┬───────────┐
│1│7│5.329618927│5.678765376│
├─┼─┼───────────┼───────────┤
│2│7│3.364469002│4.176536709│
├─┼─┼───────────┼───────────┤
...
├─┼─┼───────────┼───────────┤
│ │ │ │ │
├─┼─┼───────────┼───────────┤
│1│8│5.312160001│5.65157164 │
├─┼─┼───────────┼───────────┤
...
├─┼─┼───────────┼───────────┤
│5│8│4.744037125│3.891049294│
└─┴─┴───────────┴───────────┘
Dat -. (4 # a:) NB. Dat without items consisting of 4 empty boxes
┌─┬─┬───────────┬───────────┐
│1│7│5.329618927│5.678765376│
├─┼─┼───────────┼───────────┤
...
├─┼─┼───────────┼───────────┤
│5│8│4.744037125│3.891049294│
└─┴─┴───────────┴───────────┘
_999 ". > Dat -. (4 # a:) NB. unbox and convert to numeric
1 7 5.32962 5.67877
...
5 8 4.74404 3.89105
您可以将其作为一行执行:
]Dat=: _999 ". > -.&(4 # a:) cut;._2 freads 'myfile.txt'
1 7 5.32962 5.67877
2 7 3.36447 4.17654
3 7 4.21495 7.20521
4 7 3.32414 8.93519
5 7 4.74636 3.89335
1 8 5.31216 5.65157
2 8 3.3787 4.17521
3 8 4.20277 7.21697
4 8 3.32497 8.92438
5 8 4.74404 3.89105
如果您有一些要保存/读取为csv文件的数据,则该tables/csv
插件将提供帮助。
load 'tables/csv'
Dat writecsv jpath '~temp/myfile.csv' NB. write to J's temp folder
290
readcsv jpath '~temp/myfile.csv'
┌─┬─┬───────────┬───────────┐
│1│7│5.329618927│5.678765376│
├─┼─┼───────────┼───────────┤
│2│7│3.364469002│4.176536709│
├─┼─┼───────────┼───────────┤
...
├─┼─┼───────────┼───────────┤
│5│8│4.744037125│3.891049294│
└─┴─┴───────────┴───────────┘
makenum readcsv jpath '~temp/myfile.csv'
1 7 5.32962 5.67877
2 7 3.36447 4.17654
3 7 4.21495 7.20521
4 7 3.32414 8.93519
5 7 4.74636 3.89335
1 8 5.31216 5.65157
2 8 3.3787 4.17521
3 8 4.20277 7.21697
4 8 3.32497 8.92438
5 8 4.74404 3.89105
插件将自动将2维以上的数组重塑为2维,这样就不会引起任何空白行。如果您仍然有空白行,那么最好是了解为什么要创建空白行并阻止它们被写入。如果仍然需要删除它们,那么上面显示的技术将起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句