提问人:Hermes3 提问时间:1/5/2022 更新时间:1/5/2022 访问量:20
如果 CSV 文件中的某些行是字符串类型而不是数字,我该如何删除它们?
How can I remove certain rows in a CSV file if they are string type rather than numeric?
问:
我有一个包含 10 列的数据集,其中两列应该是端口号(数字)。数据集很大,有超过 100 万行。有没有办法快速删除 sport 或 dport 值是字符串而不是数字的行?
答:
0赞
Zach Young
1/5/2022
#1
我非常喜欢使用 GoCSV,它提供了许多功能,例如您正在寻找的功能。
它是一个命令行工具,其过滤器命令将执行您想要的操作。
我模拟了这个简单的CSV:
Id,sport,dport
1,,443
2,8080,
3,Foo,22
4,9999,
5,Bar,
6,444,Baz
我运行这个:
gocsv filter -c 'sport','dport' -regex '[^\d]' -exclude input.csv
这是在“sport”或“dport”列中过滤与正则表达式“has a non-digit”匹配的任何行,然后排除该行(反转过滤器)......
...我得到这个输出:
Id,sport,dport
1,,443
2,8080,
4,9999,
可以通过转到其发布页面并下载适用于您的操作系统/体系结构的预构建二进制文件来安装它。
评论